Я на Ubuntu, и я уже установил llvm-dev:
# llvm-config --libs
-lLLVM-6.0
Так что я могу собрать свой "llvm_gen.cpp" и ссылку, используя "-lLLVM-6.0", без проблем, нокогда я использую cmake, как показано ниже:
find_package(LLVM CONFIG)
include_directories(${LLVM_INCLUDE_DIRS})
add_executable(llvm_gen llvm_gen.cpp)
target_link_libraries(llvm_gen ${LLVM_LIBRARIES})
Затем я нахожу, что LLVM_LIBRARIES пусто, потому что когда "cmake. && make VERBOSE = 1" я увидел:
[ 50%] Linking CXX executable llvm_gen
/usr/bin/cmake -E cmake_link_script CMakeFiles/llvm_gen.dir/link.txt --verbose=1
/usr/bin/c++ -rdynamic CMakeFiles/llvm_gen.dir/llvm_gen.cpp.o -o llvm_gen
CMakeFiles/llvm_gen.dir/llvm_gen.cpp.o: In function `(anonymous namespace)::ForceMCJITLinking::ForceMCJITLinking()'
Вы можете увидеть командуВ строке отсутствует опция «-l», как будто «target_link_libraries» не вступил в силу.Но если я изменю его на
target_link_libraries(llvm_gen LLVM_6.0)
, тогда это сработает.Так что мне совершенно ясно, что переменная "LLVM_LIBRARIES" пуста, верно?Но я не хочу, чтобы жесткий код версии llvm.
Так как это исправить?Большое спасибо.