【问题标题】:How to add "Other Linker Flags" to xcode project using command line?如何使用命令行将“其他链接器标志”添加到 xcode 项目?
【发布时间】:2012-06-21 22:20:08
【问题描述】:

我正在尝试自动化 xcode 项目的构建过程。问题是我需要在构建项目时添加“其他链接器标志”。我不能只是手动将它添加到项目构建设置中,我必须使用命令行来完成。 可能我可以以某种方式编辑项目文件或配置文件吗? 只要它可以作为脚本运行,任何选项都很好。 有任何想法吗?谢谢

【问题讨论】:

    标签: iphone ios xcode xcodebuild


    【解决方案1】:

    您可以通过为 xcodebuild 指定一个 xcconfig 文件来做到这一点。例如:

    echo 'OTHER_LDFLAGS = $(OTHER_LDFLAGS) -force_load "$(SRCROOT)/calabash.framework/calabash" -lstdc++' > temp.xcconfig
    xcodebuild -xcconfig temp.xcconfig ...
    

    【讨论】:

    • 如何设置这个标志:-force_load "$(SRCROOT)/calabash.framework/calabash" -lstdc++ ?
    • 当我尝试使用“xcodebuild”构建项目时出现错误:以下构建命令失败:Libtool build/appname.build/Debug-iphoneos/foo.build/Objects-normal/armv6 /foo.a 正常的 armv6。即使当我在 xcode 中手动添加链接器标志时项目构建良好
    • 如果它在 Xcode 中构建良好,如果您指定正确的方案/目标/配置等,您可能应该能够使用 xcodebuild 构建它。查看 xcodebuild 文档或者您可以打开一个新问题。
    • 您可以添加多个链接器标志吗?喜欢 -ObjC?
    • @Frank 是的 - 我给出的示例通过了几个链接器标志(-force_load 和 -ldstdc++);您可以在那里添加更多内容。
    【解决方案2】:

    @Jesse Rusak 的回答有效,但直接向命令行添加选项要简单一些,注意从 shell 中转义变量,例如

    xcodebuild ... "OTHER_LDFLAGS=\$(OTHER_LDFLAGS) -all_load"
    

    【讨论】:

      【解决方案3】:

      在像 BBEdit 这样的编辑器中打开 project.pbxproj 文件并粘贴您想要的标志。搜索

      buildSettings = {
      ...
      
      SWIFT_VERSION = 4.2;
      }
      

      变成

      buildSetting = {
      ...
      
      SWIFT_VERSION = 4.2;
      OTHER_LDFLAGS = "-all_load";
      }
      

      应该有一个部分用于您的调试和发布方案。为所有人做这件事

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2014-06-24
        • 1970-01-01
        • 1970-01-01
        • 2013-10-23
        • 2015-03-17
        • 2010-09-28
        • 1970-01-01
        相关资源
        最近更新 更多