Ich bin ein dynamisches Framework für iOS erstellen. Es benötigt einige Symbole aus Code oder anderen Bibliotheken, aber ich möchte sie nicht in das Framework einbinden.Xcode Clang-Link: Build Dynamic Framework (oder Dylib) nicht einbetten Abhängigkeiten
Dies kann erreicht werden, wenn Sie eine statische Bibliothek erstellen, richten Sie einfach den Suchpfad ein und stellen Sie sicher, dass sie nicht in den Build-Phasen des Ziels enthalten sind.
Aber wenn ein dynamisches Framework oder Dylib erstellen, dieses Ergebnis undefiniert Symbol Fehler. Ich habe alle möglichen Verbindungsoptionen ausprobiert, zB -l
-weak_library
-weak_framework
-I
-rpath
-rpath-link
. Aber keiner funktioniert.
Der Link-Befehl sieht wie folgt aus:
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