C++ Mac Snow Leopard上的Qt 5.3.2:ld:未找到架构x86_64的符号[clang、objective-c和c+;+;]

C++ Mac Snow Leopard上的Qt 5.3.2:ld:未找到架构x86_64的符号[clang、objective-c和c+;+;],c++,objective-c,macos,qt,osx-snow-leopard,C++,Objective C,Macos,Qt,Osx Snow Leopard,我通读了许多性质相同的问题,但没有找到我需要的东西 我正在编译一个关于雪豹(10.6.8)和Qt5.3.2的项目 在我的程序的main方法中,我检查它是否在mac上,并打开一个基于cocoa的窗口,否则创建标准QApplication和MainWindow配置。我有一个.mmobjective-c类,它包含窗口代码,当包含其相应的头文件时,它会给我以下错误: Undefined symbols for architecture x86_64: "QMacApplication::QMacAp

我通读了许多性质相同的问题,但没有找到我需要的东西

我正在编译一个关于雪豹(10.6.8)和Qt5.3.2的项目

在我的程序的
main
方法中,我检查它是否在mac上,并打开一个基于cocoa的窗口,否则创建标准
QApplication
MainWindow
配置。我有一个
.mm
objective-c类,它包含窗口代码,当包含其相应的头文件时,它会给我以下错误:

Undefined symbols for architecture x86_64:
  "QMacApplication::QMacApplication()", referenced from:
      _main in main.o
ld: symbol(s) not found for architecture x86_64
clang: error: linker command failed with exit code 1 (use -v to see invocation)
我正在使用QT官方github repo中修改后的代码,用于
qtmacextras
,将cocoa窗口代码放入自己的库中,我可以导入并在其他应用程序中使用。请看,尽管我使用的是5.3.2兼容的提交


为什么会出现此错误?

正如其他问题所指出的,此错误可能来自缺少的框架

但是这个特殊错误的原因是我的项目
pro
文件中缺少了一些行。 我使用了
OBJECTIVE\u SOURCES
来包含我的
.mm
文件,但我没有将
OBJECTIVE\u头
包含在头文件中——即使它不包含任何OBJECTIVE-c代码,并且我已经在
HEADERS
指令中指定了它

以下是我的
.pro
文件的简明版本:

TARGET = QMacApplication
TEMPLATE = lib

QT       += widgets core macextras
QT_PRIVATE += gui-private core-private

QMAKE_CXXFLAGS_GNUCXX11 = -std=c++98
CONFIG -= c++11
load(qt_build_config)

ios {
    LIBS_PRIVATE += -framework UIKit
} else {
    LIBS_PRIVATE += -framework AppKit
}

SOURCES += \
    window.cpp

HEADERS += qmacapplication.h\
        qmacapplication_global.h \
    window.h

OBJECTIVE_SOURCES += qmacapplication.mm
OBJECTIVE_HEADERS += qmacapplication.h
当我从
HEADERS
指令中删除
qmacapplication.h
时,它会编译,但将其保留在指令中似乎也是安全的

这是使用xcode 4.2,如果有必要的话