私はclangでLTOを使用しようとしています(cmakeを使用):フラグ-emit-llvm
はコンパイル時に設定され、出力は-c
フラグで生成されるため、LLVMビットコードが結果になります。問題は、cmake が「.o」サフィックスの結果を返すことですが、「.bc」が必要です。this: を使用する他のコードを見つけましset(CMAKE_C_OUTPUT_EXTENSION .bc)
たが、機能しませんでした。
cmake_minimum_required(VERSION 3.3)
project(cc C)
set(CMAKE_BUILD_TYPE Release)
enable_language(C)
file(GLOB_RECURSE SOURCES "src/*.c")
add_executable(cc ${SOURCES})
if (UNIX)
target_compile_options(cc PRIVATE "-Weverything")
target_compile_options(cc PRIVATE "-std=c11")
target_compile_options(cc PRIVATE "-emit-llvm")
set(CMAKE_C_FLAGS_RELEASE "-Ofast -DNDEBUG")
set(CMAKE_C_OUTPUT_EXTENSION ".bc")
endif()