[cfe-dev] How to link against lib/libclang in developing a clang-tools-extra project?

Lou Wynn via cfe-dev cfe-dev at lists.llvm.org
Thu Oct 25 18:45:58 PDT 2018


That works. "clang" itself doesn't. Thank you!

Love,
Lou

On 10/26/18 1:10 AM, Kristóf Umann wrote:
> Hmm, try adding "libclang" the same way you added clangFrontend! No 
> idea whether that'll work, but after looking around, that's how other 
> cmake files seem to do it.
>
> Lou Wynn via cfe-dev <cfe-dev at lists.llvm.org 
> <mailto:cfe-dev at lists.llvm.org>> ezt írta (időpont: 2018. okt. 25., 
> Cs, 5:13):
>
>     Hi,
>
>     I'm writing a small clang tool in the clang-tools-extra directory
>     by using the monorepo. My CMakeList.txt files is as follows:
>
>     set(LLVM_LINK_COMPONENTS Support)
>
>     add_clang_executable(loop-convert
>       LoopConvert.cpp
>       )
>
>     target_link_libraries(loop-convert
>       PRIVATE
>       clang
>       clangAST
>       clangASTMatchers
>       clangBasic
>       clangFrontend
>       clangTooling
>       )
>
>
>     When I ran the build command, I got a linker error complaining
>     that functions in lib/libclang.so cannot be found:
>
>     $ ninja loop-convert
>     [1/1] Linking CXX executable bin/loop-convert
>     FAILED: : && /usr/bin/clang++-6.0   -fPIC
>     -fvisibility-inlines-hidden -Werror=date-time
>     -Werror=unguarded-availability-new -std=c++11 -Wall -Wextra
>     -Wno-unused-parameter -Wwrite-strings -Wcast-qual
>     -Wmissing-field-initializers -pedantic -Wno-long-long
>     -Wcovered-switch-default -Wno-noexcept-type -Wnon-virtual-dtor
>     -Wdelete-non-virtual-dtor -Wstring-conversion -fdiagnostics-color
>     -fno-common -Woverloaded-virtual -Wno-nested-anon-types -g 
>     -fuse-ld=lld-6.0 -Wl,--color-diagnostics
>     -Wl,-allow-shlib-undefined
>     tools/clang/tools/extra/loop-convert/CMakeFiles/loop-convert.dir/LoopConvert.cpp.o
>     -o bin/loop-convert  lib/libLLVMSupport.so.8svn -lpthread
>     lib/libclangAST.so.8svn lib/libclangASTMatchers.so.8svn
>     lib/libclangBasic.so.8svn lib/libclangFrontend.so.8svn
>     lib/libclangTooling.so.8svn -Wl,-rpath,"\$ORIGIN/../lib" && :
>     /usr/bin/ld.lld-6.0: error: undefined symbol: clang_getCString
>     >>> referenced by LoopConvert.cpp:7
>     (/home/lu/work/git-repos/llvm-mono/llvm-project/clang-tools-extra/loop-convert/LoopConvert.cpp:7)
>     >>>
>     tools/clang/tools/extra/loop-convert/CMakeFiles/loop-convert.dir/LoopConvert.cpp.o:(operator<<(std::ostream&,
>     CXString const&))
>
>     ...
>
>
>     It is clear that the lib/libclang.so.8svn is missing from the
>     command line invoked by ninja. How can I add it into the build
>     command? The "clang" line in the CMakeList.txt file doesn't work.
>
>     Thanks.
>
>     -- 
>     Love,
>     Lou
>
>     _______________________________________________
>     cfe-dev mailing list
>     cfe-dev at lists.llvm.org <mailto:cfe-dev at lists.llvm.org>
>     http://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-dev
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.llvm.org/pipermail/cfe-dev/attachments/20181026/e4b376d5/attachment.html>


More information about the cfe-dev mailing list