Эта ошибка может возникать из-за отсутствия фреймворка, как указывали другие вопросы.
Но причиной этой конкретной ошибки было то, что мне не хватало некоторых строк в моем файле pro
проекта. Я использовал OBJECTIVE_SOURCES
для включения моего .mm
файла, но я не включал OBJECTIVE_HEADERS
в мой заголовочный файл - хотя он не содержал никакого объективного кода - c, и я уже указал его в * Директива 1007 *.
Вот краткая версия моего .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
Он компилируется, когда я удаляю qmacapplication.h
из директивы HEADERS
, но кажется безопасным для оставь это также.
Это использует xcode 4.2, если это имеет значение.