[cfe-dev] linking error when running libTooling tutorial

Kristóf Umann via cfe-dev cfe-dev at lists.llvm.org
Mon Oct 22 08:14:43 PDT 2018


Actually, how did you configure cmake? I experienced similar linker errors
when building other external projects, and I suspect it might be down to
using a different setup.

On 22 Oct 2018 14:19, "Kristóf Umann" <dkszelethus at gmail.com> wrote:

> Cheers, glad it's solved!
> Lou Wynn <lewisurn at gmail.com> ezt írta (időpont: 2018. okt. 22., H,
> 14:16):
>
>> Nice, adding clangFrontend works! The tutorial needs an update.
>>
> Yup, let's do it then. ;)
>
>> Thanks.
>>
>> Love,
>> Lou
>>
>> On 10/22/18 8:06 PM, Kristóf Umann wrote:
>>
>> Shouldn't it be this?:
>> set(LLVM_LINK_COMPONENTS Support)
>>
>> add_clang_executable(loop-convert
>>   LoopConvert.cpp
>>   )
>> target_link_libraries(loop-convert
>>   PRIVATE
>>   clangFrontend
>>   clangTooling
>>   clangBasic
>>   clangASTMatchers
>>   )
>>
>> Lou Wynn <lewisurn at gmail.com> ezt írta (időpont: 2018. okt. 22., H,
>> 13:59):
>>
>>> I've already added. This is my CMakeLists.txt:
>>>
>>> set(LLVM_LINK_COMPONENTS Support)
>>>
>>> add_clang_executable(loop-convert
>>>   LoopConvert.cpp
>>>   )
>>> target_link_libraries(loop-convert
>>>   PRIVATE
>>>   clangTooling
>>>   clangBasic
>>>   clangASTMatchers
>>>   )
>>>
>>> Love,
>>> Lou
>>>
>>>
>>> On 10/22/18 7:18 PM, Kristóf Umann wrote:
>>>
>>> Try adding clangFrontend to target_link_libraries in CMakeLists.txt.
>>>
>>> Lou Wynn via cfe-dev <cfe-dev at lists.llvm.org> ezt írta (időpont: 2018.
>>> okt. 22., H, 12:14):
>>>
>>>> I followed the libTooling tutorial at here: http://clang.llvm.org/docs/
>>>> LibASTMatchersTutorial.html to write the loop-convert program. When I
>>>> built it, I got the following error (I used the unofficial monorepo to
>>>> build clang):
>>>>
>>>>
>>>> $ 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/libclangTooling.so.8svn lib/libclangBasic.so.8svn
>>>> lib/libclangASTMatchers.so.8svn -Wl,-rpath,"\$ORIGIN/../lib" && :
>>>> /usr/bin/ld.lld-6.0: error: undefined symbol:
>>>> clang::PCHContainerOperations::PCHContainerOperations()
>>>> >>> referenced by new_allocator.h:120 (/usr/bin/../lib/gcc/x86_64-
>>>> linux-gnu/5.4.0/../../../../include/c++/5.4.0/ext/new_allocator.h:120)
>>>> >>>               tools/clang/tools/extra/loop-convert/CMakeFiles/loop-
>>>> convert.dir/LoopConvert.cpp.o:(void __gnu_cxx::new_allocator<
>>>> clang::PCHContainerOperations>::construct<clang::
>>>> PCHContainerOperations>(clang::PCHContainerOperations*))
>>>>
>>>> /usr/bin/ld.lld-6.0: error: undefined symbol: vtable for
>>>> clang::SyntaxOnlyAction
>>>> >>> referenced by FrontendActions.h:158 (/home/lu/work/git-repos/llvm-
>>>> mono/llvm-project/clang/include/clang/Frontend/FrontendActions.h:158)
>>>> >>>               tools/clang/tools/extra/loop-convert/CMakeFiles/loop-
>>>> convert.dir/LoopConvert.cpp.o:(clang::SyntaxOnlyAction::
>>>> SyntaxOnlyAction())
>>>>
>>>> /usr/bin/ld.lld-6.0: error: undefined symbol: clang::FrontendAction::
>>>> FrontendAction()
>>>> >>> referenced by FrontendAction.h:253 (/home/lu/work/git-repos/llvm-
>>>> mono/llvm-project/clang/include/clang/Frontend/FrontendAction.h:253)
>>>> >>>               tools/clang/tools/extra/loop-convert/CMakeFiles/loop-
>>>> convert.dir/LoopConvert.cpp.o:(clang::ASTFrontendAction::
>>>> ASTFrontendAction())
>>>>
>>>> /usr/bin/ld.lld-6.0: error: undefined symbol: vtable for
>>>> clang::ASTFrontendAction
>>>> >>> referenced by FrontendAction.h:253 (/home/lu/work/git-repos/llvm-
>>>> mono/llvm-project/clang/include/clang/Frontend/FrontendAction.h:253)
>>>> >>>               tools/clang/tools/extra/loop-convert/CMakeFiles/loop-
>>>> convert.dir/LoopConvert.cpp.o:(clang::ASTFrontendAction::
>>>> ASTFrontendAction())
>>>> clang: error: linker command failed with exit code 1 (use -v to see
>>>> invocation)
>>>> ninja: build stopped: subcommand failed.
>>>>
>>>>
>>>> Can anyone point me to the right direction to fix it?
>>>>
>>>> Thanks.
>>>>
>>>> --
>>>> Love,
>>>> Lou
>>>>
>>>>
>>>> _______________________________________________
>>>> cfe-dev mailing list
>>>> 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/20181022/f5ad2466/attachment.html>


More information about the cfe-dev mailing list