cmake生成Xcode-project – 发布 – 构建工作但链接器错误存档失败

cmake生成Xcode-project – 发布 – 构建工作但链接器错误存档失败,第1张

概述使用 Xcode 6.3.1,CMake 3.2.2 我有一个与图书馆链接的项目.该库作为代码包含在xcode项目中,编译后与主可执行文件链接. 该项目是使用cmake生成的. CMakeLists.txt的一些摘录: add_library(mylib ${mylib_HEADERS} pch.cpp source/mylib/xxx.cpp)...add_executable(${MAIN 使用 Xcode 6.3.1,CMake 3.2.2

我有一个与图书馆链接的项目.该库作为代码包含在xcode项目中,编译后与主可执行文件链接.

该项目是使用cmake生成的. CMakeLists.txt的一些摘录:

add_library(mylib ${mylib_headerS} pch.cpp source/mylib/xxx.cpp)...add_executable(${MAIN_BINARY_name} MACOSX_BUNDLE ${MAIN_headerS} ${MAIN_CODE_fileS} ${MAIN_ICON_fileS} ${MAIN_DYliBS} )target_link_librarIEs (${MAIN_BINARY_name} mylib)

在生成我的xcodeproj之后,我构建了一个正常版本(cmd B),它可以编译和链接(并运行)而不会出现问题.当我尝试归档但是它在链接器错误上失败了.

使用命令行xcodebuild我比较了两个版本,一些提取:

发布版本

libtool /Users/username/dev/MyProject/cmake-master/libs/mylib/RelWithDebInfo/libmylib.a normal x86_64

归档构建

libtool /Users/username/library/Developer/Xcode/DerivedData/MyProject-facomnlcdbuduqeohionewjyectq/ArchiveIntermediates/MyProject/IntermediateBuildfilesPath/UninstalledProducts/libmylib.a normal x86_64...Ld /Users/username/library/Developer/Xcode/DerivedData/MyProject-facomnlcdbuduqeohionewjyectq/ArchiveIntermediates/MyProject/InstallationBuildProductsLocation/Applications/MyProject.app/Contents/MacOS/MyProject normal x86_64...clang: error: no such file or directory: '/Users/username/dev/myproject/cmake-master/libs/mylib/RelWithDebInfo/libmylib.a'

因此,对于发布版本,它正确使用cmake指定的构建路径.对于存档构建,它忽略构建路径,而是编译并将结果库放在default-intermediate-folder中 – 但是当它与exe链接时,它再次查看cmake指定的构建路径,然后无法找到图书馆.

它看起来像是xcode中的一个错误,因为cmake会覆盖构建路径……

解决方法 与此同时,我找到了一个解决方案,所以至少它Archives没有链接器错误.在cmakeLists.txt中指定“每个配置构建路径”,如下所示:

set_target_propertIEs(mylib PROPERTIES ARCHIVE_OUTPUT_DIRECTORY ${PROJECT_BINARY_DIR}/out/library)

归档文件将编译库 – 稍后在链接时找到它

总结

以上是内存溢出为你收集整理的cmake生成Xcode-project – 发布 – 构建工作但链接器错误存档失败全部内容,希望文章能够帮你解决cmake生成Xcode-project – 发布 – 构建工作但链接器错误存档失败所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/web/1051464.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-05-25
下一篇 2022-05-25

发表评论

登录后才能评论

评论列表(0条)

保存