【发布时间】:2016-09-21 06:00:23
【问题描述】:
最近我在 El Capitan(使用 Macports 2.3.4 的 OS X 10.11)上更新到 XCode 版本 8.0 (8A218a),从那时起,当我尝试在 Qt Creator 中编译我的项目时,我一直收到以下链接错误。
/opt/local/bin/g++-mp-5 -headerpad_max_install_names -Wl,-syslibroot,/Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.12.sdk -mmacosx-version-min=10.8 -Wl,-rpath,/Users/zero/builds/Qt5.7.0/5.7/clang_64/lib -o uniMR.app/Contents/MacOS/uniMR ALL_OBJECT_FILES_GO_HERE.o -F/Users/zero/builds/Qt5.7.0/5.7/clang_64/lib -L/opt/local/lib -L/usr/local/lib -funit-at-a-time -fopenmp -lmlpack -larmadillo -framework CoreFoundation -DNDEBUG -lpthread -lALL_ITK_LIBS_GO_HERE -framework QtOpenGL -framework QtWidgets -framework QtGui -framework QtCore -framework DiskArbitration -framework IOKit -framework QtXml -framework OpenGL -framework AGL
**ld: unexpected token: !tapi-tbd-v2 file '/Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.12.sdk/System/Library/Frameworks//CoreFoundation.framework/CoreFoundation.tbd' for architecture x86_64
collect2: error: ld returned 1 exit status
make: *** [uniMR.app/Contents/MacOS/uniMR] Error 1**
我在 QtCreator (Qt 5.7) 中使用 gcc 5.4(不是 clang)编译主项目,并且我所有的依赖库(ITK、BOOST 等)也使用 gcc 5.4 编译。升级 XCode 后,我还重新编译了所有依赖库,但这也无济于事。我只能找到一篇与我看到的错误相关的帖子,但它似乎没有用: https://trac.macports.org/ticket/51701
在我升级 XCode 之前一切都很好。现在我不确定如何解决这个问题。我将不胜感激这方面的任何帮助。谢谢。
更新:
这似乎不是我链接的任何外部库的问题。这就是我所做的。我在QtCreator中新建了一个“QT widgets application”,并选择用gcc5编译。我得到同样的错误ld: unexpected token: !tapi-tbd-v2。如果我切换到clang,那就没有错误了。
【问题讨论】:
-
我还没有看到类似的东西。我最喜欢的变化是
dsymutil如果我创建一个(静态)库然后更新其中一个成员,它的行为特别 - 库第一次创建时没问题,但更新后就不行了,只有更新的成员悲伤。我还没有获得它的 MCVE。另一个问题是如果我尝试 32 位构建而不是 64 位构建;然后我被告知warning: section "__textcoal_nt" is deprecated—.section __TEXT,__textcoal_nt,coalesced,pure_instructions—note: change section name to "__text"。 (自制 GCC 6.2.0。) -
这对您没有多大帮助,但表明 (a) 并非每个人都遇到过您的特定问题,并且 (b) 可能还有其他问题您仍然可能遇到,并且 (c ) 有些人已经看了看他们是否可以提供帮助。
-
得到非常相似的错误:升级到 xcode 8 (El Capitan 10.11.6) 升级后我现在在我的 ios 项目 (.cpp / .hpp) 中使用了几个 C++ 文件,所有突然的 xcode 说我的 CPP Header "#include
" 'string' 文件未找到。如果我对此发表评论,它将停在“类某事”的定义上,“你的意思是‘类’吗?”所以由于某种原因它停止识别 CPP .. 我检查了 CPP 链接器,但 libc++ 或 libstdc++ 这两个选项都没有任何效果
标签: c++ macos qt linker-errors xcode8