Я пытаюсь применить Оптимизацию времени связи с LLVM в проекте CMake, который создает общую библиотеку. Мой вопрос почти такой же, как и этот:
Переключение между GCC и Clang/LLVM с помощью 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 дополнительные шаги?