【发布时间】:2016-06-25 16:18:54
【问题描述】:
我正在尝试在创建共享库的 CMake 项目上使用 LLVM 应用链接时间优化。我的问题和这个差不多:
Switching between GCC and Clang/LLVM using CMake。
但是,答案似乎不再适用,因为 llvm-ld 在新版本中不存在。在命令行上,我运行以下命令来获取 LTO(假设只有 2 个.cpp 文件):
编译成字节码:
clang++ -c FirstClass.cpp -O3 -flto -o FirstClass.bc
clang++ -c SecondClass.cpp -O3 -flto -o SecondClass.bc
链接字节码:
llvm-link FirstClass.bc SecondClass.bc -o unoptimized.bc
优化字节码:
opt -O3 unoptimized.bc -o optimized.bc
将字节码转换为共享对象:
clang++ -shared optimized.bc -o libTest.so
有人可以告诉我如何让 CMake 运行其他步骤吗?
【问题讨论】:
-
这可能是 cmake 的
add_custom_command的工作...类似于add_custom_command(OUTPUT libTest.so COMMAND clang++ -shared optimized.bc -o libTest.so MAIN_DEPENDENCY optimized.bc)见 stackoverflow.com/questions/13470499/…