我正在嘗試從標準分發中構建一個示例,即BrainF並沒有成功。構建LLVM示例
我做了我的副本的例子/ BrainF,並試圖從這個目錄運行cmake。最初CMakeLists.txt看起來像這樣:
set(LLVM_LINK_COMPONENTS jit bitwriter nativecodegen interpreter)
add_llvm_example(BrainF
BrainF.cpp
BrainFDriver.cpp
)
cmake抱怨add_ *。我通過閱讀http://llvm.org/docs/CMake.html#embedding,並決定一些前奏添加到的CMakeLists.txt:
find_package(LLVM)
# Define add_llvm_* macro's.
include(AddLLVM)
add_definitions(${LLVM_DEFINITIONS})
include_directories(${LLVM_INCLUDE_DIRS})
link_directories(${LLVM_LIBRARY_DIRS})
然後cmake的抱怨是,它便無法執行find_package(LLVM)
,並建議尋找LLVMConfig.cmake或LLVM,config.cmake。我發現最接近的東西放在/usr/src/llvm/cmake/modules/LLVM-Config.cmake下,所以我設置了CMAKE_PREFIX_PATH=/usr/src/llvm/cmake/modules/
,並將軟鏈接LLVMConfig.cmake設置爲LLVM-Config.cmake。
然後cmake這樣抱怨:「包含找不到加載文件:AddLLVM」。如果我對整個路徑進行硬編碼以包含AddLLVM.cmake,則問題將包括AddLLVM.cmake中存在的問題,因此它看起來不是完成任務的正確方法。
我的環境是Xubuntu 12.04和llvm + clang 3.1(從某些ppa獲得deb包,從Debian返回)。
'我做了我的副本的例子/ BrainF,並試圖從這個目錄運行cmake.'你爲什麼這樣做?如果您希望設置使用LLVM的項目,請參閱http://llvm.org/docs/CMake.html#embedding-llvm-in-your-project – arrowd 2012-08-13 17:46:03
「你爲什麼這樣做?如果你想建立項目「 - 我只是試圖建立他們的一個例子。而且我不想在系統目錄中執行此操作(我必須使用sudo)。 我在下面的帖子回答中討論的更新來自您指定的頁面。我只是沒有明確地使用llvm_map_components_to_libraries,而是留下了它們的設置(LLVM_LINK_COMPONENTS ...)和add_llvm_example(...),我認爲這(如錯誤文本所示)使用explicit_map_components_to_libraries,這反過來也做幾乎相同。 – 2012-08-13 20:25:54