<html><head><style type="text/css"><!-- DIV {margin:0px;} --></style></head><body><div style="font-family:verdana,helvetica,sans-serif;font-size:10pt"><div><br></div><div style="font-family: verdana,helvetica,sans-serif; font-size: 10pt;"><br><div style="font-family: times new roman,new york,times,serif; font-size: 12pt;"><font face="Tahoma" size="2">----- 转发邮件 ----<br><b><span style="font-weight: bold;">发件人:</span></b> kobe James <god.son2046@yahoo.com.cn><br><b><span style="font-weight: bold;">收件人:</span></b> arrowdodger <6yearold@gmail.com><br><b><span style="font-weight: bold;">发送日期:</span></b> 2011/4/23 (周六) 9:45:28 下午<br><b><span style="font-weight: bold;">主   题:</span></b> 回复: [cfe-dev] Fail to compile clang-wpa.cpp<br></font><br><div style="font-family: verdana,helvetica,sans-serif; font-size: 10pt;"><div><br></div><div style="font-family: verdana,helvetica,sans-serif; font-size:
 10pt;">Thanks. <br>I have changed the command to <br><br>clang++ -D__STDC_LIMIT_MACROS -D__STDC_CONSTANT_MACROS clang-wpa.cpp -o clang-wpa<br><br>And I got the following errors:<br>/tmp/cc-NNmY0D.o: In function `main':<br>clang-wpa.cpp:(.text+0x1fd): undefined reference to `llvm::cl::ParseCommandLineOptions(int, char**, char const*, bool)'<br>clang-wpa.cpp:(.text+0x20f): undefined reference to `clang::idx::Program::Program()'<br>clang-wpa.cpp:(.text+0x2e2): undefined reference to `clang::CompilerInstance::createDiagnostics(clang::DiagnosticOptions const&, int, char const* const*, clang::DiagnosticClient*, clang::CodeGenOptions const*)'<br>clang-wpa.cpp:(.text+0x3c2): undefined reference to
 `clang::ASTUnit::LoadFromASTFile(std::string const&, llvm::IntrusiveRefCntPtr<clang::Diagnostic>, clang::FileSystemOptions const&, bool, std::pair<std::string, llvm::PointerUnion<char const*, llvm::MemoryBuffer const*> >*, unsigned int, bool)'<br>clang-wpa.cpp:(.text+0x5df): undefined reference to `clang::CallGraph::CallGraph(clang::idx::Program&)'<br>clang-wpa.cpp:(.text+0x69d): undefined reference to `clang::CallGraph::addTU(clang::ASTContext&)'<br>clang-wpa.cpp:(.text+0x718): undefined reference to `clang::CallGraph::ViewCallGraph() const'<br>clang-wpa.cpp:(.text+0x84f): undefined reference to `clang::idx::Indexer::IndexAST(clang::idx::TranslationUnit*)'<br>clang-wpa.cpp:(.text+0x8bb): undefined reference to `clang::idx::Entity::get(llvm::StringRef, clang::idx::Program&)'<br>clang-wpa.cpp:(.text+0x934): undefined reference to
 `clang::idx::Indexer::getDefinitionFor(clang::idx::Entity)'<br>clang-wpa.cpp:(.text+0xe5d): undefined reference to `clang::ento::registerCheckers(clang::AnalyzerOptions const&, clang::LangOptions const&, clang::Diagnostic&)'<br>clang-wpa.cpp:(.text+0xfe3): undefined reference to `clang::ento::CreateRangeConstraintManager(clang::ento::GRStateManager&, clang::ento::SubEngine&)'<br>clang-wpa.cpp:(.text+0xff3): undefined reference to `clang::ento::CreateRegionStoreManager(clang::ento::GRStateManager&)'<br>clang-wpa.cpp:(.text+0x1057): undefined reference to `clang::ento::MakeCFRefCountTF(clang::ASTContext&, bool, clang::LangOptions const&)'<br>clang-wpa.cpp:(.text+0x1087): undefined reference to `clang::ento::ExprEngine::ExprEngine(clang::ento::AnalysisManager&, clang::ento::TransferFuncs*)'<br>clang-wpa.cpp:(.text+0x1112): undefined reference to `clang::ento::ExprEngine::~ExprEngine()'<br>clang-wpa.cpp:(.text+0x1165):
 undefined reference to `clang::ento::ExprEngine::~ExprEngine()'<br>clang-wpa.cpp:(.text+0x1256): undefined reference to `clang::idx::Program::~Program()'<br>clang-wpa.cpp:(.text+0x1298): undefined reference to `clang::idx::Program::~Program()'<br>/tmp/cc-NNmY0D.o: In function `(anonymous namespace)::ASTUnitTU::ASTUnitTU(clang::ASTUnit*)':<br>clang-wpa.cpp:(.text+0x13da): undefined reference to `clang::idx::DeclReferenceMap::DeclReferenceMap(clang::ASTContext&)'<br>clang-wpa.cpp:(.text+0x1412): undefined reference to `clang::idx::SelectorMap::SelectorMap(clang::ASTContext&)'<br>clang-wpa.cpp:(.text+0x145c): undefined reference to `clang::idx::TranslationUnit::~TranslationUnit()'<br>/tmp/cc-NNmY0D.o: In function `(anonymous namespace)::ASTUnitTU::~ASTUnitTU()':<br>clang-wpa.cpp:(.text+0x15c7): undefined reference to `clang::idx::TranslationUnit::~TranslationUnit()'<br>clang-wpa.cpp:(.text+0x160c): undefined reference to
 `clang::idx::TranslationUnit::~TranslationUnit()'<br>/tmp/cc-NNmY0D.o: In function `llvm::OwningPtr<clang::CallGraph>::reset(clang::CallGraph*)':<br>clang-wpa.cpp:(.text._ZN4llvm9OwningPtrIN5clang9CallGraphEE5resetEPS2_[_ZN4llvm9OwningPtrIN5clang9CallGraphEE5resetEPS2_]+0x56): undefined reference to `clang::CallGraph::~CallGraph()'<br>/tmp/cc-NNmY0D.o: In function `llvm::Triple::getOS() const':<br>clang-wpa.cpp:(.text._ZNK4llvm6Triple5getOSEv[_ZNK4llvm6Triple5getOSEv]+0x28): undefined reference to `llvm::Triple::Parse() const'<br>/tmp/cc-NNmY0D.o: In function `llvm::Triple::getVendor() const':<br>clang-wpa.cpp:(.text._ZNK4llvm6Triple9getVendorEv[_ZNK4llvm6Triple9getVendorEv]+0x28): undefined reference to `llvm::Triple::Parse() const'<br>/tmp/cc-NNmY0D.o: In function
 `llvm::OwningPtr<clang::ento::CheckerManager>::reset(clang::ento::CheckerManager*)':<br>clang-wpa.cpp:(.text._ZN4llvm9OwningPtrIN5clang4ento14CheckerManagerEE5resetEPS3_[_ZN4llvm9OwningPtrIN5clang4ento14CheckerManagerEE5resetEPS3_]+0x56): undefined reference to `clang::ento::CheckerManager::~CheckerManager()'<br>/tmp/cc-NNmY0D.o: In function `clang::ento::ExprEngine::ExecuteWorkList(clang::LocationContext const*, unsigned int)':<br>clang-wpa.cpp:(.text._ZN5clang4ento10ExprEngine15ExecuteWorkListEPKNS_15LocationContextEj[_ZN5clang4ento10ExprEngine15ExecuteWorkListEPKNS_15LocationContextEj]+0x38): undefined reference to `clang::ento::CoreEngine::ExecuteWorkList(clang::LocationContext const*, unsigned int, clang::ento::GRState const*)'<br>/tmp/cc-NNmY0D.o: In function `clang::ento::AnalysisManager::getStackFrame(clang::Decl const*,
 clang::idx::TranslationUnit*)':<br>clang-wpa.cpp:(.text._ZN5clang4ento15AnalysisManager13getStackFrameEPKNS_4DeclEPNS_3idx15TranslationUnitE[_ZN5clang4ento15AnalysisManager13getStackFrameEPKNS_4DeclEPNS_3idx15TranslationUnitE]+0x5b): undefined reference to `clang::AnalysisContextManager::getContext(clang::Decl const*, clang::idx::TranslationUnit*)'<br>clang-wpa.cpp:(.text._ZN5clang4ento15AnalysisManager13getStackFrameEPKNS_4DeclEPNS_3idx15TranslationUnitE[_ZN5clang4ento15AnalysisManager13getStackFrameEPKNS_4DeclEPNS_3idx15TranslationUnitE]+0x77): undefined reference to `clang::LocationContextManager::getStackFrame(clang::AnalysisContext*, clang::LocationContext const*, clang::Stmt const*, clang::CFGBlock const*, unsigned int)'<br>/tmp/cc-NNmY0D.o: In function
 `llvm::OwningPtr<clang::ento::CheckerManager>::~OwningPtr()':<br>clang-wpa.cpp:(.text._ZN4llvm9OwningPtrIN5clang4ento14CheckerManagerEED2Ev[_ZN4llvm9OwningPtrIN5clang4ento14CheckerManagerEED2Ev]+0x29): undefined reference to `clang::ento::CheckerManager::~CheckerManager()'<br>/tmp/cc-NNmY0D.o: In function `llvm::OwningPtr<clang::CallGraph>::~OwningPtr()':<br>clang-wpa.cpp:(.text._ZN4llvm9OwningPtrIN5clang9CallGraphEED2Ev[_ZN4llvm9OwningPtrIN5clang9CallGraphEED2Ev]+0x29): undefined reference to `clang::CallGraph::~CallGraph()'<br>/tmp/cc-NNmY0D.o: In function `llvm::OwningPtr<clang::ASTUnit>::~OwningPtr()':<br>clang-wpa.cpp:(.text._ZN4llvm9OwningPtrIN5clang7ASTUnitEED2Ev[_ZN4llvm9OwningPtrIN5clang7ASTUnitEED2Ev]+0x29): undefined reference to `clang::ASTUnit::~ASTUnit()'<br>/tmp/cc-NNmY0D.o: In function `llvm::RefCountedBase<clang::Diagnostic>::Release()
 const':<br>clang-wpa.cpp:(.text._ZNK4llvm14RefCountedBaseIN5clang10DiagnosticEE7ReleaseEv[_ZNK4llvm14RefCountedBaseIN5clang10DiagnosticEE7ReleaseEv]+0x7a): undefined reference to `clang::Diagnostic::~Diagnostic()'<br>/tmp/cc-NNmY0D.o: In function `llvm::cl::opt<std::string, false, llvm::cl::parser<std::string> >::opt<char [17], llvm::cl::desc>(char const (&) [17], llvm::cl::desc const&)':<br>clang-wpa.cpp:(.text._ZN4llvm2cl3optISsLb0ENS0_6parserISsEEEC2IA17_cNS0_4descEEERKT_RKT0_[_ZN4llvm2cl3optISsLb0ENS0_6parserISsEEEC2IA17_cNS0_4descEEERKT_RKT0_]+0x42): undefined reference to `vtable for llvm::cl::opt<std::string, false, llvm::cl::parser<std::string> >'<br>clang-wpa.cpp:(.text._ZN4llvm2cl3optISsLb0ENS0_6parserISsEEEC2IA17_cNS0_4descEEERKT_RKT0_[_ZN4llvm2cl3optISsLb0ENS0_6parserISsEEEC2IA17_cNS0_4descEEERKT_RKT0_]+0x78): undefined reference to `llvm::cl::opt<std::string, false,
 llvm::cl::parser<std::string> >::done()'<br>/tmp/cc-NNmY0D.o: In function `llvm::cl::Option::Option(unsigned int)':<br>clang-wpa.cpp:(.text._ZN4llvm2cl6OptionC2Ej[_ZN4llvm2cl6OptionC2Ej]+0x14): undefined reference to `vtable for llvm::cl::Option'<br>/tmp/cc-NNmY0D.o: In function `llvm::cl::Option::~Option()':<br>clang-wpa.cpp:(.text._ZN4llvm2cl6OptionD2Ev[_ZN4llvm2cl6OptionD2Ev]+0x4): undefined reference to `vtable for llvm::cl::Option'<br>/tmp/cc-NNmY0D.o: In function `llvm::cl::parser<std::string>::~parser()':<br>clang-wpa.cpp:(.text._ZN4llvm2cl6parserISsED2Ev[_ZN4llvm2cl6parserISsED2Ev]+0xc): undefined reference to `vtable for llvm::cl::parser<std::string>'<br>/tmp/cc-NNmY0D.o: In function `llvm::cl::basic_parser<std::string>::~basic_parser()':<br>clang-wpa.cpp:(.text._ZN4llvm2cl12basic_parserISsED2Ev[_ZN4llvm2cl12basic_parserISsED2Ev]+0xc): undefined reference to `vtable for
 llvm::cl::basic_parser<std::string>'<br>/tmp/cc-NNmY0D.o: In function `llvm::cl::basic_parser_impl::~basic_parser_impl()':<br>clang-wpa.cpp:(.text._ZN4llvm2cl17basic_parser_implD2Ev[_ZN4llvm2cl17basic_parser_implD2Ev]+0x4): undefined reference to `vtable for llvm::cl::basic_parser_impl'<br>/tmp/cc-NNmY0D.o: In function `llvm::cl::parser<std::string>::parser()':<br>clang-wpa.cpp:(.text._ZN4llvm2cl6parserISsEC2Ev[_ZN4llvm2cl6parserISsEC2Ev]+0xc): undefined reference to `vtable for llvm::cl::parser<std::string>'<br>/tmp/cc-NNmY0D.o: In function `llvm::cl::basic_parser<std::string>::basic_parser()':<br>clang-wpa.cpp:(.text._ZN4llvm2cl12basic_parserISsEC2Ev[_ZN4llvm2cl12basic_parserISsEC2Ev]+0xc): undefined reference to `vtable for llvm::cl::basic_parser<std::string>'<br>/tmp/cc-NNmY0D.o: In function
 `llvm::cl::basic_parser_impl::basic_parser_impl()':<br>clang-wpa.cpp:(.text._ZN4llvm2cl17basic_parser_implC2Ev[_ZN4llvm2cl17basic_parser_implC2Ev]+0x4): undefined reference to `vtable for llvm::cl::basic_parser_impl'<br>/tmp/cc-NNmY0D.o: In function `llvm::cl::opt<bool, false, llvm::cl::parser<bool> >::opt<char [16], llvm::cl::desc>(char const (&) [16], llvm::cl::desc const&)':<br>clang-wpa.cpp:(.text._ZN4llvm2cl3optIbLb0ENS0_6parserIbEEEC2IA16_cNS0_4descEEERKT_RKT0_[_ZN4llvm2cl3optIbLb0ENS0_6parserIbEEEC2IA16_cNS0_4descEEERKT_RKT0_]+0x42): undefined reference to `vtable for llvm::cl::opt<bool, false, llvm::cl::parser<bool> >'<br>clang-wpa.cpp:(.text._ZN4llvm2cl3optIbLb0ENS0_6parserIbEEEC2IA16_cNS0_4descEEERKT_RKT0_[_ZN4llvm2cl3optIbLb0ENS0_6parserIbEEEC2IA16_cNS0_4descEEERKT_RKT0_]+0x78): undefined reference to `llvm::cl::opt<bool, false, llvm::cl::parser<bool> >::done()'<br>/tmp/cc-NNmY0D.o: In
 function `llvm::cl::parser<bool>::~parser()':<br>clang-wpa.cpp:(.text._ZN4llvm2cl6parserIbED2Ev[_ZN4llvm2cl6parserIbED2Ev]+0xc): undefined reference to `vtable for llvm::cl::parser<bool>'<br>/tmp/cc-NNmY0D.o: In function `llvm::cl::basic_parser<bool>::~basic_parser()':<br>clang-wpa.cpp:(.text._ZN4llvm2cl12basic_parserIbED2Ev[_ZN4llvm2cl12basic_parserIbED2Ev]+0xc): undefined reference to `vtable for llvm::cl::basic_parser<bool>'<br>/tmp/cc-NNmY0D.o: In function `llvm::cl::parser<bool>::parser()':<br>clang-wpa.cpp:(.text._ZN4llvm2cl6parserIbEC2Ev[_ZN4llvm2cl6parserIbEC2Ev]+0xc): undefined reference to `vtable for llvm::cl::parser<bool>'<br>/tmp/cc-NNmY0D.o: In function `llvm::cl::basic_parser<bool>::basic_parser()':<br>clang-wpa.cpp:(.text._ZN4llvm2cl12basic_parserIbEC2Ev[_ZN4llvm2cl12basic_parserIbEC2Ev]+0xc): undefined reference to `vtable for llvm::cl::basic_parser<bool>'<br>/tmp/cc-NNmY0D.o: In function
 `llvm::cl::list<std::string, bool, llvm::cl::parser<std::string> >::done()':<br>clang-wpa.cpp:(.text._ZN4llvm2cl4listISsbNS0_6parserISsEEE4doneEv[_ZN4llvm2cl4listISsbNS0_6parserISsEEE4doneEv]+0x15): undefined reference to `llvm::cl::Option::addArgument()'<br>/tmp/cc-NNmY0D.o: In function `llvm::cl::list<std::string, bool, llvm::cl::parser<std::string> >::getOptionWidth() const':<br>clang-wpa.cpp:(.text._ZNK4llvm2cl4listISsbNS0_6parserISsEEE14getOptionWidthEv[_ZNK4llvm2cl4listISsbNS0_6parserISsEEE14getOptionWidthEv]+0x23): undefined reference to `llvm::cl::basic_parser_impl::getOptionWidth(llvm::cl::Option const&) const'<br>/tmp/cc-NNmY0D.o: In function `llvm::cl::list<std::string, bool, llvm::cl::parser<std::string> >::printOptionInfo(unsigned long) const':<br>clang-wpa.cpp:(.text._ZNK4llvm2cl4listISsbNS0_6parserISsEEE15printOptionInfoEm[_ZNK4llvm2cl4listISsbNS0_6parserISsEEE15printOptionInfoEm]+0x33): undefined
 reference to `llvm::cl::basic_parser_impl::printOptionInfo(llvm::cl::Option const&, unsigned long) const'<br>/tmp/cc-NNmY0D.o: In function `clang::idx::Indexer::~Indexer()':<br>clang-wpa.cpp:(.text._ZN5clang3idx7IndexerD2Ev[_ZN5clang3idx7IndexerD2Ev]+0xf): undefined reference to `vtable for clang::idx::Indexer'<br>clang-wpa.cpp:(.text._ZN5clang3idx7IndexerD2Ev[_ZN5clang3idx7IndexerD2Ev]+0x6e): undefined reference to `clang::idx::IndexProvider::~IndexProvider()'<br>clang-wpa.cpp:(.text._ZN5clang3idx7IndexerD2Ev[_ZN5clang3idx7IndexerD2Ev]+0x10b): undefined reference to `clang::idx::IndexProvider::~IndexProvider()'<br>/tmp/cc-NNmY0D.o: In function `llvm::SmallPtrSet<clang::idx::TranslationUnit*, 4u>::~SmallPtrSet()':<br>clang-wpa.cpp:(.text._ZN4llvm11SmallPtrSetIPN5clang3idx15TranslationUnitELj4EED2Ev[_ZN4llvm11SmallPtrSetIPN5clang3idx15TranslationUnitELj4EED2Ev]+0x11): undefined reference to
 `llvm::SmallPtrSetImpl::~SmallPtrSetImpl()'<br>/tmp/cc-NNmY0D.o: In function `clang::ento::AnalysisManager::~AnalysisManager()':<br>clang-wpa.cpp:(.text._ZN5clang4ento15AnalysisManagerD2Ev[_ZN5clang4ento15AnalysisManagerD2Ev]+0x44): undefined reference to `clang::LocationContextManager::~LocationContextManager()'<br>clang-wpa.cpp:(.text._ZN5clang4ento15AnalysisManagerD2Ev[_ZN5clang4ento15AnalysisManagerD2Ev]+0x56): undefined reference to `clang::AnalysisContextManager::~AnalysisContextManager()'<br>clang-wpa.cpp:(.text._ZN5clang4ento15AnalysisManagerD2Ev[_ZN5clang4ento15AnalysisManagerD2Ev]+0x67): undefined reference to `clang::ento::BugReporterData::~BugReporterData()'<br>clang-wpa.cpp:(.text._ZN5clang4ento15AnalysisManagerD2Ev[_ZN5clang4ento15AnalysisManagerD2Ev]+0xca): undefined reference to
 `clang::LocationContextManager::~LocationContextManager()'<br>clang-wpa.cpp:(.text._ZN5clang4ento15AnalysisManagerD2Ev[_ZN5clang4ento15AnalysisManagerD2Ev]+0xf6): undefined reference to `clang::AnalysisContextManager::~AnalysisContextManager()'<br>clang-wpa.cpp:(.text._ZN5clang4ento15AnalysisManagerD2Ev[_ZN5clang4ento15AnalysisManagerD2Ev]+0x104): undefined reference to `clang::ento::BugReporterData::~BugReporterData()'<br>/tmp/cc-NNmY0D.o: In function `clang::ento::AnalysisManager::AnalysisManager(clang::ASTContext&, clang::Diagnostic&, clang::LangOptions const&, clang::ento::PathDiagnosticClient*, clang::ento::StoreManager* (*)(clang::ento::GRStateManager&), clang::ento::ConstraintManager* (*)(clang::ento::GRStateManager&, clang::ento::SubEngine&), clang::ento::CheckerManager*, clang::idx::Indexer*, unsigned int, unsigned int, bool, bool, bool, bool, bool, bool, bool, bool, bool,
 bool)':<br>clang-wpa.cpp:(.text._ZN5clang4ento15AnalysisManagerC2ERNS_10ASTContextERNS_10DiagnosticERKNS_11LangOptionsEPNS0_20PathDiagnosticClientEPFPNS0_12StoreManagerERNS0_14GRStateManagerEEPFPNS0_17ConstraintManagerESE_RNS0_9SubEngineEEPNS0_14CheckerManagerEPNS_3idx7IndexerEjjbbbbbbbbbb[_ZN5clang4ento15AnalysisManagerC2ERNS_10ASTContextERNS_10DiagnosticERKNS_11LangOptionsEPNS0_20PathDiagnosticClientEPFPNS0_12StoreManagerERNS0_14GRStateManagerEEPFPNS0_17ConstraintManagerESE_RNS0_9SubEngineEEPNS0_14CheckerManagerEPNS_3idx7IndexerEjjbbbbbbbbbb]+0x2f5): undefined reference to
 `clang::LocationContextManager::~LocationContextManager()'<br>clang-wpa.cpp:(.text._ZN5clang4ento15AnalysisManagerC2ERNS_10ASTContextERNS_10DiagnosticERKNS_11LangOptionsEPNS0_20PathDiagnosticClientEPFPNS0_12StoreManagerERNS0_14GRStateManagerEEPFPNS0_17ConstraintManagerESE_RNS0_9SubEngineEEPNS0_14CheckerManagerEPNS_3idx7IndexerEjjbbbbbbbbbb[_ZN5clang4ento15AnalysisManagerC2ERNS_10ASTContextERNS_10DiagnosticERKNS_11LangOptionsEPNS0_20PathDiagnosticClientEPFPNS0_12StoreManagerERNS0_14GRStateManagerEEPFPNS0_17ConstraintManagerESE_RNS0_9SubEngineEEPNS0_14CheckerManagerEPNS_3idx7IndexerEjjbbbbbbbbbb]+0x30a): undefined reference to
 `clang::AnalysisContextManager::~AnalysisContextManager()'<br>clang-wpa.cpp:(.text._ZN5clang4ento15AnalysisManagerC2ERNS_10ASTContextERNS_10DiagnosticERKNS_11LangOptionsEPNS0_20PathDiagnosticClientEPFPNS0_12StoreManagerERNS0_14GRStateManagerEEPFPNS0_17ConstraintManagerESE_RNS0_9SubEngineEEPNS0_14CheckerManagerEPNS_3idx7IndexerEjjbbbbbbbbbb[_ZN5clang4ento15AnalysisManagerC2ERNS_10ASTContextERNS_10DiagnosticERKNS_11LangOptionsEPNS0_20PathDiagnosticClientEPFPNS0_12StoreManagerERNS0_14GRStateManagerEEPFPNS0_17ConstraintManagerESE_RNS0_9SubEngineEEPNS0_14CheckerManagerEPNS_3idx7IndexerEjjbbbbbbbbbb]+0x31b): undefined reference to `clang::ento::BugReporterData::~BugReporterData()'<br>/tmp/cc-NNmY0D.o: In function `clang::ento::BugReporterData::BugReporterData()':<br>clang-wpa.cpp:(.text._ZN5clang4ento15BugReporterDataC2Ev[_ZN5clang4ento15BugReporterDataC2Ev]+0x4): undefined reference to `vtable for clang::ento::BugReporterData'<br>/tmp/cc-NNmY0D.o: In
 function `llvm::FoldingSet<clang::LocationContext>::FoldingSet(unsigned int)':<br>clang-wpa.cpp:(.text._ZN4llvm10FoldingSetIN5clang15LocationContextEEC2Ej[_ZN4llvm10FoldingSetIN5clang15LocationContextEEC2Ej]+0x2d): undefined reference to `llvm::FoldingSetImpl::FoldingSetImpl(unsigned int)'<br>/tmp/cc-NNmY0D.o: In function `llvm::DefaultFoldingSetTrait<clang::LocationContext>::ComputeHash(clang::LocationContext&, llvm::FoldingSetNodeID&)':<br>clang-wpa.cpp:(.text._ZN4llvm22DefaultFoldingSetTraitIN5clang15LocationContextEE11ComputeHashERS2_RNS_16FoldingSetNodeIDE[_ZN4llvm22DefaultFoldingSetTraitIN5clang15LocationContextEE11ComputeHashERS2_RNS_16FoldingSetNodeIDE]+0x22): undefined reference to `llvm::FoldingSetNodeID::ComputeHash() const'<br>/tmp/cc-NNmY0D.o: In function `llvm::DefaultFoldingSetTrait<clang::LocationContext>::Equals(clang::LocationContext&, llvm::FoldingSetNodeID const&,
 llvm::FoldingSetNodeID&)':<br>clang-wpa.cpp:(.text._ZN4llvm22DefaultFoldingSetTraitIN5clang15LocationContextEE6EqualsERS2_RKNS_16FoldingSetNodeIDERS5_[_ZN4llvm22DefaultFoldingSetTraitIN5clang15LocationContextEE6EqualsERS2_RKNS_16FoldingSetNodeIDERS5_]+0x29): undefined reference to `llvm::FoldingSetNodeID::operator==(llvm::FoldingSetNodeID const&) const'<br>/tmp/cc-NNmY0D.o: In function `llvm::FoldingSet<clang::LocationContext>::~FoldingSet()':<br>clang-wpa.cpp:(.text._ZN4llvm10FoldingSetIN5clang15LocationContextEED2Ev[_ZN4llvm10FoldingSetIN5clang15LocationContextEED2Ev]+0x22): undefined reference to `llvm::FoldingSetImpl::~FoldingSetImpl()'<br>/tmp/cc-NNmY0D.o: In function `clang::idx::TranslationUnit::TranslationUnit()':<br>clang-wpa.cpp:(.text._ZN5clang3idx15TranslationUnitC2Ev[_ZN5clang3idx15TranslationUnitC2Ev]+0x4): undefined reference to `vtable for clang::idx::TranslationUnit'<br>/tmp/cc-NNmY0D.o: In function
 `clang::idx::Indexer::Indexer(clang::idx::Program&)':<br>clang-wpa.cpp:(.text._ZN5clang3idx7IndexerC2ERNS0_7ProgramE[_ZN5clang3idx7IndexerC2ERNS0_7ProgramE]+0x27): undefined reference to `vtable for clang::idx::Indexer'<br>clang-wpa.cpp:(.text._ZN5clang3idx7IndexerC2ERNS0_7ProgramE[_ZN5clang3idx7IndexerC2ERNS0_7ProgramE]+0x10b): undefined reference to `clang::idx::IndexProvider::~IndexProvider()'<br>/tmp/cc-NNmY0D.o: In function `clang::idx::IndexProvider::IndexProvider()':<br>clang-wpa.cpp:(.text._ZN5clang3idx13IndexProviderC2Ev[_ZN5clang3idx13IndexProviderC2Ev]+0x4): undefined reference to `vtable for clang::idx::IndexProvider'<br>/tmp/cc-NNmY0D.o: In function `llvm::cl::opt<std::string, false, llvm::cl::parser<std::string> >::~opt()':<br>clang-wpa.cpp:(.text._ZN4llvm2cl3optISsLb0ENS0_6parserISsEEED2Ev[_ZN4llvm2cl3optISsLb0ENS0_6parserISsEEED2Ev]+0xf): undefined reference to `vtable for llvm::cl::opt<std::string, false,
 llvm::cl::parser<std::string> >'<br>/tmp/cc-NNmY0D.o: In function `llvm::cl::opt<bool, false, llvm::cl::parser<bool> >::~opt()':<br>clang-wpa.cpp:(.text._ZN4llvm2cl3optIbLb0ENS0_6parserIbEEED2Ev[_ZN4llvm2cl3optIbLb0ENS0_6parserIbEEED2Ev]+0xf): undefined reference to `vtable for llvm::cl::opt<bool, false, llvm::cl::parser<bool> >'<br>/tmp/cc-NNmY0D.o:(.rodata._ZTVN4llvm2cl4listISsbNS0_6parserISsEEEE[_ZTVN4llvm2cl4listISsbNS0_6parserISsEEEE]+0x20): undefined reference to `llvm::cl::Option::anchor()'<br>/tmp/cc-NNmY0D.o:(.rodata._ZTIN4llvm2cl4listISsbNS0_6parserISsEEEE[_ZTIN4llvm2cl4listISsbNS0_6parserISsEEEE]+0x18): undefined reference to `typeinfo for llvm::cl::Option'<br>/tmp/cc-NNmY0D.o:(.rodata._ZTIN5clang4ento15AnalysisManagerE[_ZTIN5clang4ento15AnalysisManagerE]+0x10): undefined reference to `typeinfo for
 clang::ento::BugReporterData'<br>/tmp/cc-NNmY0D.o:(.rodata._ZTIN4llvm10FoldingSetIN5clang15LocationContextEEE[_ZTIN4llvm10FoldingSetIN5clang15LocationContextEEE]+0x10): undefined reference to `typeinfo for llvm::FoldingSetImpl'<br>/tmp/cc-NNmY0D.o:(.rodata+0x80): undefined reference to `typeinfo for clang::idx::TranslationUnit'<br>clang: error: linker command failed with exit code 1 (use -v to see invocation)<br>=======================================================<br><br>Could you help me figure out the what the problem is?<br><br>Best,<br>Chen<br><div style="font-family: times new roman,new york,times,serif; font-size: 12pt;"><font face="Tahoma" size="2"><hr size="1"><b><span style="font-weight: bold;">发件人:</span></b> arrowdodger <6yearold@gmail.com><br><b><span style="font-weight: bold;">收件人:</span></b> kobe James <god.son2046@yahoo.com.cn><br><b><span style="font-weight: bold;">抄   送:</span></b>
 cfe-dev@cs.uiuc.edu<br><b><span style="font-weight: bold;">发送日期:</span></b> 2011/4/23 (周六) 9:39:44 上午<br><b><span style="font-weight: bold;">主   题:</span></b> Re: [cfe-dev] Fail to compile clang-wpa.cpp<br></font><br>On Sat, Apr 23, 2011 at 10:51 AM, kobe James <span dir="ltr"><<a rel="nofollow" ymailto="mailto:god.son2046@yahoo.com.cn" target="_blank" href="mailto:god.son2046@yahoo.com.cn">god.son2046@yahoo.com.cn</a>></span> wrote:<br><div class="gmail_quote"><blockquote class="gmail_quote" style="border-left: 1px solid rgb(204, 204, 204); margin: 0pt 0pt 0pt 0.8ex; padding-left: 1ex;">

<div><div style="font-family: verdana,helvetica,sans-serif; font-size: 10pt;"><div>Hi,<br><br>I installed Clang on my machine. It successed to compile a simple C file.<br><br>Then I tried to compile the clang-wpa.cpp file but got the following errors:<br>

==============================<br>In file included from clang-wpa.cpp:15:<br>In file included from /usr/local/include/clang/Basic/FileManager.h:20:<br>In file included from /usr/local/include/llvm/ADT/StringMap.h:18:<br>
In file included from /usr/local/include/llvm/Support/Allocator.h:18:<br>
In file included from /usr/local/include/llvm/Support/MathExtras.h:17:<br>In file included from /usr/local/include/llvm/Support/SwapByteOrder.h:18:<br>/usr/local/include/llvm/Support/DataTypes.h:45:3: error: #error "Must #define __STDC_LIMIT_MACROS before #including System/DataTypes.h"<br>

# error "Must #define __STDC_LIMIT_MACROS before
 #including System/DataTypes.h"<br>  ^<br>/usr/local/include/llvm/Support/DataTypes.h:49:3: error: #error "Must #define __STDC_CONSTANT_MACROS before " "#including System/DataTypes.h"<br># error "Must #define __STDC_CONSTANT_MACROS before " \<br>

  ^<br>In file included from clang-wpa.cpp:15:<br>In file included from /usr/local/include/clang/Basic/FileManager.h:20:<br>In file included from /usr/local/include/llvm/ADT/StringMap.h:18:<br>In file included from /usr/local/include/llvm/Support/Allocator.h:18:<br>

/usr/local/include/llvm/Support/MathExtras.h:38:24: error: use of undeclared identifier 'INT64_C'<br>  return N >= 64 || (-(INT64_C(1)<<(N-1)) <= x && x < (INT64_C(1)<<(N-1)));<br>                       ^<br>

/usr/local/include/llvm/Support/MathExtras.h:38:56: error: use of undeclared identifier
 'INT64_C'<br>  return N >= 64 || (-(INT64_C(1)<<(N-1)) <= x && x < (INT64_C(1)<<(N-1)));<br>                                                       ^<br>/usr/local/include/llvm/Support/MathExtras.h:57:26: error: use of undeclared identifier 'UINT64_C'<br>

  return N >= 64 || x < (UINT64_C(1)<<N);<br>                         ^<br>/usr/local/include/llvm/Support/MathExtras.h:82:24: error: use of undeclared identifier 'INT64_C'<br>  return N >= 64 || (-(INT64_C(1)<<(N-1)) <= x && x <
 (INT64_C(1)<<(N-1)));<br>                       ^<br>/usr/local/include/llvm/Support/MathExtras.h:82:56: error: use of undeclared identifier 'INT64_C'<br>  return N >= 64 || (-(INT64_C(1)<<(N-1)) <= x && x < (INT64_C(1)<<(N-1)));<br>

                                                       ^<br>7 errors generated.<br><br>======================================<br>Do you know what the problem is here?<br><br>Thanks,<br>Chen<br><br></div>
</div></div><br>_______________________________________________<br>
cfe-dev mailing list<br>
<a rel="nofollow" ymailto="mailto:cfe-dev@cs.uiuc.edu" target="_blank" href="mailto:cfe-dev@cs.uiuc.edu">cfe-dev@cs.uiuc.edu</a><br>
<a rel="nofollow" target="_blank" href="http://lists.cs.uiuc.edu/mailman/listinfo/cfe-dev">http://lists.cs.uiuc.edu/mailman/listinfo/cfe-dev</a><br>
<br></blockquote></div><br>Use llvm-config script to set your compiler flags. Or just add "-D__STDC_LIMIT_MACROS -D__STDC_CONSTANT_MACROS" to it.<br>
</div></div>
</div></div></div>
</div></body></html>