gpt4 book ai didi

c++ - 在链接阶段诊断 "contains undefined reference for architecture"

转载 作者:行者123 更新时间:2023-11-28 07:27:45 53 4
gpt4 key购买 nike

我正在尝试使用 qmake/qt 在 MacOSX 上构建 x86_64 应用程序。我可以在 QT4 中编译,但不能在 QT5 中编译。

无论如何,在运行 qmake 生成我的 makefile 等之后:

qmake -recursive -spec macx-clang app.pro CONFIG+='release static'

然后当我运行 make 时,最终我会在这里结束:

/Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/clang++ -headerpad_max_install_names -arch x86_64 -Wl,-dead_strip -framework Cocoa -framework Carbon -Wl,-syslibroot,/Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.8.sdk -mmacosx-version-min=10.6 -o(...作者注——这里有大量的 .o 文件...) -L../lib -L../../debug -F/Users/seth/workspace/qt5.1.0//5.1.0/clang_64/lib -lprotobuf -framework Security -framework SecurityInterface -framework ApplicationServices -framework CoreFoundation -lxml2 -lbz2 -lxar -framework ScriptingBridge -L/Users/seth/workspace/qt5.1.0//5.1.0/clang_64/plugins/iconengines -lssl -lcrypto -lz -lFLAC -framework Carbon -framework QtWebKitWidgets -框架QtQuick -框架QtQml -框架QtNetwork -框架QtCore -框架QtGui -框架QtOpenGL -框架QtWidgets -框架QtPrintSupport -框架Cocoa -框架QtWebKit -框架QtSql -框架QtSensors -框架QtSvg -框架QtXml -框架OpenGL -框架AGL

ld: debug/Log.o 中的“__ZN3Log16DebugE7QStringS3_”包含架构 x86_64 的 undefined reference
clang:错误:链接器命令失败,退出代码为 1(使用 -v 查看调用)

我不明白'undefined reference for architecture x86_64' 是什么意思,这肯定是问题的核心。在阅读其他一些线程时,有人建议我链接的库不是 x86_64,但在检查和重新检查之后,我找不到该过程中涉及的任何非 x86_64 库。

在使用 file 命令检查后,我构建的所有 .o 文件都是 Mach-O 64 位对象 x86_64

对于我尝试引用的所有库(例如 libcrypto):

非胖文件:../lib/libcrypto.a 架构:x86_64

当然,所有 mac 框架库都支持 32/64 位。

有人对我如何进一步调试它有什么建议吗?

最佳答案

折腾了一整天,找到了。

链接提示的方法中有这个:

qt_mac_execute_apple_script

qt5中没有该方法

此外,在有问题的文件的前面,我有这个:

extern bool qt_mac_execute_apple_script(const QString &script, AEDesc *ret);

如果我评论这些行,错误就会消失。

基本上,由于缺少符号,这是一个非常糟糕的编译器错误——因为编译器不够好,无法指出模糊架构声明之外的实际问题;可能变得更糟,因为我正在构建我的应用程序与外部静态耦合。

关于c++ - 在链接阶段诊断 "contains undefined reference for architecture",我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18404080/

53 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com