0

私は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()
4

0 に答える 0