我正在尝试构建LLVM 3.4以链接libstdc ++,但是在Mavericks上似乎默认现在使用libc ++并且我在运行configure时遇到问题,因为似乎大多数选项都被定义为启用libc ++ / c ++ 11而不是禁用它们。
顺便提一下,这样做的原因是我依赖于使用libstdc ++构建的库,我需要将它与LLVM库一起使用,并且没有标准库的两个单独版本(我也尝试过没有太大成功) ,我已经决定尝试使用libstdc ++构建所有库。
根据文档,我正在使用这些命令:
./configure --prefix=/tools/llvm/3.4 --build=x86_64-apple-darwin13.1.0 --enable-pic --enable-targets=host --with-cxx-include-root=/usr/include/c++/4.2.1
make install ENABLE_OPTIMIZED=1 -j16
然而,似乎这仍然是与libc ++的联系。任何帮助将不胜感激?
编辑:
根据评论中的建议,我还调查了使用以下命令构建此代码的cmake替代方法:
cmake -DCMAKE_BUILD_TYPE="Release" -DLLVM_TARGETS_TO_BUILD="X86" -DCMAKE_INSTALL_PREFIX=/tools/llvm/3.4 -DLLVM_ENABLE_CXX11=0 -DLLVM_ENABLE_PIC=1 ../llvm
make install
我发现使用以下额外标志似乎是实现我想要的好方法:
-DCMAKE_CXX_FLAGS="-stdlib=libstdc++"
有很多选项来设置c ++ 11,这感觉不是特别直观,所以我很高兴发现有更好的支持方式来实现这一点。如果没有,我可以高兴地将其作为答案添加。