<html><head><meta http-equiv="Content-Type" content="text/html charset=utf-8"></head><body style="word-wrap: break-word; -webkit-nbsp-mode: space; -webkit-line-break: after-white-space;" class=""><div><blockquote type="cite" class=""><div class="">On Sep 5, 2017, at 5:04 AM, 彬杰 via cfe-dev <<a href="mailto:cfe-dev@lists.llvm.org" class="">cfe-dev@lists.llvm.org</a>> wrote:</div><br class="Apple-interchange-newline"><div class=""><div class="">My Code is : </div><div class="">=================================================================<span style="line-height: 1.5;" class="">======</span><span style="line-height: 1.5;" class="">======</span><span style="line-height: 1.5;" class="">======</span><span style="line-height: 1.5;" class="">======</span><span style="line-height: 1.5;" class="">======</span></div><div class=""><div class="">void *threadRun(void *arg)</div><div class="">{</div><div class="">    struct threadParam *param = (struct threadParam *) arg;</div><div class="">    ClangTool clangTool(*param->cdb, *param->taskList);</div><div class="">    pthread_mutex_lock(&Global::actionMutex);</div><div class=""><font color="#ff0000" class="">    unique_ptr<FrontendActionFactory> factory = newFrontendActionFactory<GodEyesFrontendAction>(); // Error happens here</font></div><div class="">    ToolAction* action;</div><div class="">    if (factory != NULL) {</div><div class="">        action = factory.get();</div><div class="">    }</div><div class="">    pthread_mutex_unlock(&Global::actionMutex);</div><div class="">    if (factory != NULL) {</div><div class="">        clangTool.run(action);</div><div class="">    </div><div class="">    }</div><div class="">    return (void*)1;</div><div class="">}</div></div><div class="">=================================================================<span style="line-height: 1.5;" class="">======</span><span style="line-height: 1.5;" class="">======</span><span style="line-height: 1.5;" class="">======</span><span style="line-height: 1.5;" class="">======</span><span style="line-height: 1.5;" class="">======</span></div><div class="">it can compile and link well in clang 3.7, but when I upgrade clang to 5.0 ,  it link fails.  I don't know what's wrong with this;</div><div class="">Please help me out here.Any idea will be appreciated! thanks!!!</div><div class=""><span style="line-height: 1.5;" class=""><br class=""></span></div><div class=""><span style="line-height: 1.5;" class="">ERROR Message : </span> </div><div class="">=================================================================<span style="line-height: 1.5;" class="">======</span><span style="line-height: 1.5;" class="">======</span><span style="line-height: 1.5;" class="">======</span><span style="line-height: 1.5;" class="">======</span><span style="line-height: 1.5;" class="">======</span></div><div class="">Undefined symbols for architecture x86_64:   </div><div class="">    "typeinfo for clang::ASTConsumer", referenced from:   </div><div class="">    typeinfo for GodEyesASTConsumer in GodEyes.cpp.o   </div><div class="">    "typeinfo for clang::ASTFrontendAction", referenced from:   </div><div class="">    typeinfo for GodEyesFrontendAction in GodEyes.cpp.o   </div><div class="">    "typeinfo for clang::tooling::FrontendActionFactory", referenced from:   </div><div class="">    typeinfo for std::__1::unique_ptr<clang::tooling::FrontendActionFactory, std::__1::default_delete<clang::tooling::FrontendActionFactory> >   clang::tooling::newFrontendActionFactory<GodEyesFrontendAction>  ()::SimpleFrontendActionFactory in GodEyes.cpp.o   </div><div class="">ld: symbol(s) not found for architecture x86_64   </div><div class="">clang: error: linker command failed with exit code 1 (use -v to see invocation)   </div><div class="">ninja: build stopped: subcommand failed.   </div><div class="">=================================================================<span style="line-height: 1.5;" class="">======</span><span style="line-height: 1.5;" class="">======</span><span style="line-height: 1.5;" class="">======</span><span style="line-height: 1.5;" class="">======</span><span style="line-height: 1.5;" class="">======</span><span style="line-height: 1.5;" class=""> </span></div><div class=""><br class=""></div><div class=""><br class=""></div><div class="">My CMakeLists.txt is as below: </div><div class="">=================================================================<span style="line-height: 1.5;" class="">=============</span><span style="line-height: 1.5;" class="">=================</span></div><div class="">cmake_minimum_required (VERSION 2.8) </div><div class=""><br class=""></div><div class="">project(main)   </div><div class="">set(main_VERSION 3.1)   </div><div class=""><br class=""></div><div class="">configure_file (   </div><div class="">  "${PROJECT_SOURCE_DIR}/config.h.in"   </div><div class="">  "${PROJECT_SOURCE_DIR}/config.h"   </div><div class="">  )   </div><div class=""><br class=""></div><div class="">set(CMAKE_C_COMPILER "/usr/bin/clang")   </div><div class="">set(CMAKE_CXX_COMPILER "/usr/bin/clang++")   </div><div class="">set(CMAKE_AR "/usr/bin/llvm-ar")   </div><div class="">set(CMAKE_LINKER "/usr/bin/llvm-ld")   </div><div class="">set(CMAKE_NM "/usr/bin/llvm-nm")   </div><div class="">set(CMAKE_OBJDUMP "/usr/bin/llvm-objdump")   </div><div class="">set(CMAKE_RANLIB "/usr/bin/llvm-ranlib")   </div><div class="">set(CLANG_ROOT "/Users/baixx/clang-llvm/build/lib/clang/3.9.0/include")   </div><div class="">set(LLVM_LINK_COMPONENTS support)   </div><div class="">set(LLVM_USED_LIBS clangTooling clangBasic clangAST)   </div></div></blockquote><div><br class=""></div>Looks like you need to be linking against clangFrontend.</div><div><br class=""></div><div>John.</div><div><br class=""><blockquote type="cite" class=""><div class=""><div class=""><br class=""></div><div class="">set(CMAKE_BUILD_TYPE "Release")   </div><div class="">set(CMAKE_CXX_FLAGS_DEBUG "$ENV{CXXFLAGS} -O0 -Wall -g -ggdb")   </div><div class="">set(CMAKE_CXX_FLAGS_RELEASE "$ENV{CXXFLAGS} -O3 -Wall -DCMAKE_OSX_ARCHITECTURES=x86_64")   </div><div class=""><br class=""></div><div class="">aux_source_directory(. DIR_SRCS)   </div><div class="">aux_source_directory(rules RULE_SRCS)   </div><div class="">add_executable (main-core ${DIR_SRCS} ${RULE_SRCS})   </div><div class="">target_link_libraries(main-core clangTooling curl) </div><div class="">=================================================================<span style="line-height: 1.5;" class="">=============</span><span style="line-height: 1.5;" class="">=============</span><span style="line-height: 1.5;" class=""> </span></div><div class=""><br class=""></div><div class="">Please help me out here.Any idea will be appreciated! thanks!!! </div>_______________________________________________<br class="">cfe-dev mailing list<br class=""><a href="mailto:cfe-dev@lists.llvm.org" class="">cfe-dev@lists.llvm.org</a><br class="">http://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-dev<br class=""></div></blockquote></div><br class=""></body></html>