Qt 5.2 Mac 10.10.1用于体系结构x86_64的未定义符号

Qt 5.2 Mac 10.10.1 Undefined symbols for architecture x86_64

本文关键字:符号 未定义 x86 用于 Mac Qt 体系结构      更新时间:2023-10-16

我正在mac电脑上开发opencv、Qt应用程序,然而,编译给我带来了类似的错误

Undefined symbols for architecture x86_64

我从这里创建了解决方案,Qt5.1/Qt5.2+Mac OS 10.9(小牛队)+XCode 5.0.2,用于体系结构x86_64 的未定义符号

我更改了/usr/local/Cellar/qt5/5.3.2/mkspecs/macx-clang/qmake.conf

来自

QMAKE_MACOSX_DEPLOYMENT_TARGET = 10.6

QMAKE_MACOSX_DEPLOYMENT_TARGET = 10.9

清理完这个项目后,它就不起作用了,我想知道还有什么可以改变的吗?

/////更新////

以前我发现我的默认工具包使用g++作为编译器,现在我改为clang作为默认编译器,你可以在这里看到我的配置https://www.dropbox.com/s/93viwvf1a70s347/Screenshot%202015-02-13%2002.43.23.png?dl=0

但是,"体系结构x86_64的未定义符号"错误仍然存在,还有另一个错误:错误:链接器命令失败,退出代码为1(使用-v查看调用)

怎么了??

///更新////

#-------------------------------------------------
#
# Project created by QtCreator 2014-06-08T01:54:11
#
#-------------------------------------------------
QT       += core gui
greaterThan(QT_MAJOR_VERSION, 4): QT += widgets webkitwidgets
TARGET = particle_filter
TEMPLATE = app
QT += network
SOURCES += main.cpp
HEADERS  += 

FORMS    += 
    parkingapp.ui 
#-------------------------------------------------
INCLUDEPATH += /usr/local/Cellar/opencv/2.4.9/include
LIBS += -L/usr/local/Cellar/opencv/2.4.9/lib 
-lopencv_core 
-lopencv_highgui 
-lopencv_imgproc 
-lopencv_video 
-lopencv_objdetect 
-lopencv_ml 
-lopencv_features2d
#-------------------------------------------------

后来我发现了这个http://qt-project.org/forums/viewthread/24551/P15,所以我在.pro-的末尾添加了这个

LIBS += -stdlib=libc++
QMAKE_CXXFLAGS += -stdlib=libc++
QMAKE_CXXFLAGS += -std=c++11
QMAKE_CXXFLAGS += -mmacosx-version-min=10.9
QMAKE_LFLAGS += -mmacosx-version-min=10.9

但仍然不起作用……:(

Undefined symbols for architecture x86_64

这意味着编译器无法解决符号的地址问题。

因此,您需要在专业版中为这些符号添加库。文件

例如,

LIBS += -framework AppKit
LIBS += -framework CoreAudio
LIBS += -framework AudioToolbox

检查项目配置中的库。