cmake 生成 Xcode 项目 - 发布构建有效,但存档因链接器错误而失败

2024-05-15

使用 Xcode 6.3.1、CMake 3.2.2

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

项目是用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'

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

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

存档将编译库 - 并在稍后链接时找到它

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

cmake 生成 Xcode 项目 - 发布构建有效,但存档因链接器错误而失败 的相关文章

  • NSExceptionDomains xcode 8 不工作

    我正在使用 UIWebView 来显示电子邮件订阅注册页面 它不是 https 页面 所以我显然需要破例 我不想将其设置为 NSAllowsArbitraryLoads 因为它只是整个应用程序中的一页 应用程序可能会被拒绝 所以我在 inf
  • iOS5 故事板错误:故事板在 iOS 4.3 及更早版本上不可用

    我使用故事板构建了一个小型应用程序 并且运行得很好 就在最终测试之前 我决定尝试一下它是否可以在 iOS 4 3 上运行 我点击项目设置中灰色的5 0 选择4 3 该应用程序无法构建 并显示以下错误消息 故事板在 iOS 4 3 及更早版本
  • 如何在 iOS 模拟器上打开开发者工具?

    我想打开开发者工具在 iOS 模拟器上 我在 2016 款 MacBook 上执行了以下步骤macOS 塞拉利昂 10 12 1并且不知道如何进一步 我已经安装了 Xcode 我创建了一个新的游乐场 右键单击 Xcode 停靠栏图标 然后单
  • “UITableView”类型的值没有成员“sectionHeaderTopPadding”

    为什么我在 Xcode 12 4 模拟器 ios 14 x 中收到以下代码的构建错误 if available iOS 15 0 myTableView sectionHeaderTopPadding 0 0 error here 错误是
  • Xcode Instruments:模拟器中运行的 iPhone 应用程序的峰值 RAM?

    活动监视器 又名内存监视器 是 Xcode Instruments 中唯一可以测量在模拟器中运行的 iPhone 应用程序的总应用程序 RAM 使用情况的工具吗 只是显示瞬时有线 RAM 的那条线 与 iPhone 硬件相比 尤其是 OSX
  • Clang 中所有 Objective-C 预处理器指令的列表

    Clang 中是否有所有 Objective C 预处理器指令的列表 我说的是 pragma mark Section I or pragma unused variableName or warning message 我想了解更多信息以
  • Xcode 5:单元测试未运行

    我创建了一些测试用例 它们都通过了 那是因为它们没有被运行 从 Xcode 中 我得到 Test Suite All tests started at Test Suite All tests finished at Executed 0
  • 如何让 UIAutomation、模拟器和 Xcode 调试器同时运行?

    谁能向我指出有关如何使 Instruments 运行 UIAutomation 脚本并使用在模拟器中运行的调试器启动 iPhone 应用程序的文档 限制条件 我只有 iPhone 3g 硬件来测试和调试 而 UIAutomation 无法可
  • 关于将 Objective C 代码添加到 swift 动态框架的澄清

    我有一个 swift 动态框架 当前正在链接到另一个用 Objective C 编写的框架 这可以工作 但很烦人 因为 Objective C 框架实际上只有 2 个文件 我想知道是否有办法将其带入我的 swift框架 如果这是我会使用的应
  • iOS 获取特定语言的字符串的本地化版本

    我正在构建一个适用于 iOS 的应用程序 该应用程序将提供英语和法语版本 我已经阅读了一些有关国际化的教程 并且了解了它的工作原理以及我需要做什么 我遇到的问题是有一个特定的情况 我想为英语用户加载法语字符串 我知道可以为整个应用程序设置语
  • iPhone en_* 子语言本地化

    我想在我的 iphone 应用程序中将字符串本地化为 en GB 和其他 en 子语言 但 XCode 和 iphone 拒绝让这种情况发生 我已经为 en GB 和 en US 创建了 Localized strings 的本地化 我尝试
  • 在 Swift 2.0 中以横向模式使用 UIImagePickerController

    我正在编写一个仅限 LandScape 的 iPad 应用程序 我需要从库中拍照以发送数据库 但图像上传屏幕仅适用于纵向模式 如何将其更改为横向模式 我读过一些关于 UIPickerControllerDelegate 不支持横向模式的内容
  • 在 C 中使用 pow 时,CMake 可以检测是否需要链接到 libm 吗?

    对于某些编译器 using powC 程序中的某些其他函数需要链接到m library https stackoverflow com q 8671366 1959975 但是 某些编译器不需要这样做 并且在链接到m图书馆 C 也存在几乎相
  • Xcode 8:使用 iOS 9.3 基础 SDK 编译?

    我在 Xcode 8 0 beta 8S128d 中将 iOS 应用程序升级到 Swift 3 0 我以为一切都已准备就绪 并将其上传到 iTunes Connect 当我点击 提交审核 时 它给了我一个包含 26 个错误的列表 每个嵌入式
  • cocos2d-iphone-2.1-beta2 中的 CCScrollLayer 问题

    您好 我遇到了最新 cocos2d beta 中 CCScrollLayer 中所述的问题 主要是在编译时我得到 use of undeclared identifier CC GL BLEND 有没有办法解决这个有人发现的问题 您可以安全
  • NSString 对象的最大长度是多少?

    NSString 对象中可以保存的最大字符串大小是多少 这会动态变化吗 我假设 NSString 的硬限制是 NSUIntegerMax 个字符 因为 NSString 的索引和大小相关的方法返回 NSUInteger 由于当前能够运行 i
  • 在 Xcode 中查找未使用的文件

    我最近开始开发一个新应用程序 它基本上是我以前制作的应用程序的副本 但做了一些更改 为了制作这个新应用程序 我复制了旧应用程序并删除了一些不需要的内容 我想知道 有没有办法知道 Xcode 中正在使用哪些类文件 或者有什么关于如何查找未使用
  • Xcode11 编辑器(通过“将编辑器添加到右侧”)被禁用

    自从我升级到以来它一直在工作Xcode11 2 几天前注意到了它 现在它不允许我向布局添加编辑器 如同Xcode 11 中引入的编辑器更改 https www avanderlee com xcode xcode assistant edi
  • 使用 std::function w/ std::bind 时的 EXC_BAD_ACCESS

    升级到 XCode 5 后 使用 std function 和 std bind 似乎会生成 EXC BAD ACCESS 异常 看起来好像 std function 实现中的 base 指针最终为空 导致访问错误 但我不清楚为什么会出现这
  • 自动生成的 Swift 桥接标头中“找不到接口声明”

    我当前的项目包含 Swift 和 Objective C 代码 两种类型的源文件都使用另一种语言的代码 当我进行完全清理并重新编译时 几乎每个 Swift 类声明都出现错误Module Swift h 形式为 Cannot find int

随机推荐