2011-03-06 8 views
5

सहित परियोजना के साथ एलएलवीएम के खिलाफ समस्या निवारण मैं फ्लेक्स, बाइसन और एलएलवीएम (http://gnuu.org/2009/09/18/writing-your- के साथ लिखने वाले कंपाइलर्स पर एक ट्यूटोरियल के माध्यम से काम कर रहा हूं। खुद-खिलौना-संकलक /), और अंतिम द्विआधारी संकलित करने के लिए प्रयास करते समय निम्न "अपरिभाषित संदर्भ" त्रुटियों के कई के साथ विफल: जहाँ तक मुझे पता हैफ्लेक्स और बाइसन

g++ -o parser `llvm-config --libs core jit native --cxxflags --ldflags` *.cpp 
/tmp/ccl0CSyi.o: In function `NBinaryOperator::codeGen(CodeGenContext&)': 
codegen.cpp:(.text+0x2ce): undefined reference to  `llvm::BinaryOperator::Create(llvm::Instruction::BinaryOps, llvm::Value*, llvm::Value*,  llvm::Twine const&, llvm::BasicBlock*)' 
/tmp/ccl0CSyi.o: In function `NDouble::codeGen(CodeGenContext&)': 
codegen.cpp:(.text+0x3db): undefined reference to `llvm::getGlobalContext()' 
codegen.cpp:(.text+0x3e3): undefined reference to  `llvm::Type::getDoubleTy(llvm::LLVMContext&)' 
/tmp/ccl0CSyi.o: In function `NInteger::codeGen(CodeGenContext&)': 
... 
collect2: ld returned 1 exit status 
make: *** [parser] Error 1 

, मैं सभी आवश्यक भी शामिल है और llvm- कॉन्फ़िगर स्क्रिप्ट सही तरीके से काम कर रही है --- क्या किसी को भी इन त्रुटियों को हल करने का कोई विचार है?

उत्तर

13

आप आप उपयोग कर सकते हैं कमांड लाइन

+1

धन्यवाद! आप सबसे अच्छे हो। – Dylon

0

पर स्रोत फ़ाइलों के बाद पुस्तकालयों रखना होगा:

clang++ -g -O3 toy.cpp `llvm-config --cxxflags --ldflags --system-libs --libs core` -o toy 

आशा इस मदद करता है।

+0

आप इस काम को कैसे जानते हैं? क्या आप इसे मूल ट्यूटोरियल उदाहरण के साथ प्रयोग करने में सक्षम थे? – mjuarez