我决定为我的语言项目尝试LLVM和CMake构建系统,但我不确定如何为它生成适当的跨平台CMakeLists。正在运行" llvm-config --libs"返回大约一百个图书馆(我还不确定我实际需要哪一个)和" - cxxflags"给我g ++特定的标志(我不知道它们如何转换为其他编译器)。
有没有办法从llvm-config获取不同编译器的输出? (也许这取决于如何编译llvm?) 如果是这样,我可以从CMakeLists运行llvm-config并使用其输出而不是硬编码吗? 否则,有哪些可维护的替代方案?
答案 0 :(得分:0)
llvm-config --cxxflags
将首先使用您构建LLVM的编译器。因此,如果您打算使用它并使用与g ++不同的编译器构建LLVM(默认),那么您需要使用不同的编译器构建LLVM本身 - 或者首先不使用llvm-config
。
我去了前一条路线,所以我创建了一个build.sh
,其中包含:
CC=clang CXX=clang++ cmake -DCMAKE_BUILD_TYPE=Release -DLLVM_ENABLE_ASSERTIONS=1 -DLLVM_T
ARGETS_TO_BUILD=X86 ../llvm
make
然后我有一个使用llvm-config
来定义标志等的makefile(我不会使用CMake
,但是这个概念应该可以很容易地转移到CMake
)。请参阅:https://github.com/Leporacanthicus/lacsap/blob/master/Makefile