【发布时间】:2016-08-08 08:35:00
【问题描述】:
我正在为 iOS 构建一个动态框架。它需要从代码或其他库中引用一些符号,但我不想将它们链接到框架中。
这可以在构建静态库时实现,只需设置搜索路径并确保它们不包含在目标的构建阶段。
但是在构建动态框架或dylib时,这会导致未定义符号错误。我尝试了各种链接选项,例如-l-weak_library-weak_framework-I-rpath-rpath-link。但没有一个有效。
链接命令如下所示:
clang -arch x86_64 -dynamiclib
-isysroot *iPhone_SDK_PATH*
*OPTIONS_NOT_IMPORTANT*
-install_name @rpath/Foo.framework/Foo
-Xlinker -rpath -Xlinker @executable_path/Frameworks
-Xlinker -rpath -Xlinker @loader_path/Frameworks
-Xlinker -rpath -Xlinker *BUILD_PATH*
-mios-simulator-version-min=7.0
-Xlinker -no_deduplicate
-Xlinker -objc_abi_version
-Xlinker 2
-fobjc-arc -fobjc-link-runtime
-framework Foundation
-single_module
-compatibility_version 1
-current_version 1
-Xlinker -dependency_info
-Xlinker *BUILD_PATH*/Foo.build/Objects-normal/x86_64/Foo_dependency_info.dat
-o *BUILD_PATH*/Foo.framework/Foo
【问题讨论】:
标签: xcode hyperlink clang ld dylib