2015-01-09 6 views
6

मैंने कुछ हफ्ते पहले डेबियन व्हीज़ी पर ट्रंक से एलएलवीएम संकलित और स्थापित किया था (अब मेक कॉन्फ़िगर करें) और अब llvm-mutate pass को संकलित करने के लिए स्रोत से बाहर निकलने का प्रयास किया गया है। AFAICC, llvm-mutate cmake out of source pass build instructions का पालन करता है।स्रोत पास बिल्ड से एलएलवीएम: लोड करने योग्य मॉड्यूल समर्थित नहीं हैं (लिनक्स पर)

जब बनाने की कोशिश LLVM-उत्परिवर्तित

mkdir build 
cd build 
cmake -DCMAKE_MODULE_PATH=/usr/local/share/llvm/cmake ../ 

मैं:

- नजरअंदाज कर दिया उत्परिवर्तित - लोड करने योग्य मॉड्यूल इस प्लेटफ़ॉर्म पर समर्थित नहीं।

हम्म? ऑप्ट और लोड करने योग्य पास (llvm_trunk/build/debug + Asserts/lib/xxx.so पर) मौजूद हैं और काम करते हैं (कॉन्फ़िगर & कॉन्फ़िगर करते हुए संकलित किए गए हैं, सेमीक नहीं)।

तो यह समस्या cmake से संबंधित प्रतीत होती है? किसी और को ऐसी समस्याओं का सामना करना पड़ा, साइगविन का उपयोग कर विन पर कैसे: here

कोई विचार? Thx एलेक्स

उत्तर

2

AddLLVM सेमीकेक मॉड्यूल को कुछ और आवश्यकताएं चाहिए। CMakeLists.txt में जोड़ें:

# AddLLVM needs these 
set(LLVM_RUNTIME_OUTPUT_INTDIR ${CMAKE_BINARY_DIR}/${CMAKE_CFG_INTDIR}/bin) 
set(LLVM_LIBRARY_OUTPUT_INTDIR ${CMAKE_BINARY_DIR}/${CMAKE_CFG_INTDIR}/lib) 

include(HandleLLVMOptions) # important: matches compiler flags to LLVM/Clang build 
include(AddLLVM) 

कुछ प्रेरणा this message से आई थी।

1

अलेक्सई के reply

को जोड़ने से भी list(APPEND CMAKE_MODULE_PATH "${LLVM_CMAKE_DIR}") CMakeLists.txt फ़ाइल include(AddLLVM) लाइन से पहले में

होने पर आपके PATH LLVM द्विआधारी निर्देशिका में llvm-config के लिए

साथ जोड़ने और फिर, आह्वान cmake
CXX=clang++ cmake -DLLVM_DIR=$(llvm-config --prefix)/share/llvm/cmake .. 
1

बस पूर्णता के लिए अगर कोई इस त्रुटि में आ जाएगा। इस बग को एलएलवीएम 3.8.0 में तय किया गया है ताकि आपको अपनी प्लगइन बनाने के लिए केवल AddLLVM शामिल करना होगा। हैंडल LLVMOption में फ़ाइल में उपरोक्त वर्णित सही कंपाइलर झंडे प्राप्त करने के लिए फ़ाइल केवल सहायक है।

संबंधित मुद्दे