在OSX上静态链接libc ++和clang

时间:2014-02-12 14:46:00

标签: macos build clang static-libraries libc++

我试图在OSX 10.9 64位上静态链接libc ++

这就是我的所作所为:

1)通过修改libc ++源代码附带的脚本“buildit”,构建一个带有fPIC的libc ++ 64.a。

2)使用fPIC构建我自己的所有源,并将我自己的include路径添加到新的libc ++源包含目录,同时使用-nostdinc ++作为编译标记。

3)链接“../ build / libc ++ 64.a”

我确信它会获取静态库,但它仍然会给我一个错误:

ld: illegal text-relocation to '__ZTVSt9bad_alloc' in /usr/lib/libc++.dylib from '__ZN3slm15ReadProblemFileERNS_5ModelERNS_3LogEPKwb' in bin/clang-darwin-4.2.1/release/address-model-64/threading-multi/read.o for architecture x86_64

我不明白为什么以及它如何定位和使用/usr/lib/libc++.dylib

更新:

当我在同一台机器上为32位执行相同的交叉构建时,构建成功,但我仍然依赖于libc ++。来自otool -L的dylib输出:

bin/clang-darwin-4.2.1/release/address-model-32/threading-multi/libsulum20.dynlib:  libsulum20.dynlib (compatibility version 0.0.0, current version 0.0.0)  /usr/lib/libSystem.B.dylib (compatibility version 1.0.0, current version 1197.1.1)  /usr/lib/libc++.1.dylib (compatibility version 1.0.0, current version 120.0.0)

0 个答案:

没有答案