我尝试使用bitcode编译iOS的几个开源库作为共享库。我已将标记-fembed-bitcode
添加到CFLAGS和LDFLAGS中。编译正常完成,但是一些结果库(例如curl)中没有bitcode(我已经用otool -l lib.dylib | grep LLVM
检查了它。)
我的调查表明,当dylib链接时,标记-fembed-bitcode
只是从链接器命令行中消失,但在Makefile中,在这个地方直接使用LDFLAGS。 -fembed-bitcode
如何从LDFLAGS消失?
答案 0 :(得分:1)
-fembed-bitcode
标志消失的原因是库默认使用libtool进行链接并且strips个未知标志:
创建共享库时,但不是在编译或创建共享库时 程序,libtool从命令行中删除一些标志 用户。这样做是因为libtool未知的标志可能会干扰 创建库或需要libtool的额外支持,以及 因为省略标志通常是a的保守选择 成功的建设。
如果遇到您认为有用的标志,则作为a 解决方法可以使用-Wc或-Xcompiler前置标志以允许 它们将被传递给编译器驱动程序(请参阅链接模式)。 另一种可能性是在编译器命令处添加标志 配置运行时间:
./ configure CC ='gcc -m64'
所以除了-Wc,-fembed-bitcode
之外我还要向LDFLAGS添加-fembed-bitcode
标志,并使用bitcode编译库。