Я пытаюсь собрать наборы инструментов C / C ++ с нуля.
Я собрал glibc, libc ++, libc ++ abi, но следую неопределенную ошибку ссылки при сборке clang.
Как мне исправить эту ошибку?
В /home/username/opt/lib
есть libLLVMSupport.a, который содержит библиотеку для CommandLine.cpp.o.это включает в себя символ ParseCommandLineOptions, и я указал в (C | CXX) FLAGS в опции cmake.(/ home / username / opt является каталогом INSTALL_PREFIX для всех библиотек)
Почему это приводит к неопределенной ошибке ссылки, несмотря на то, что я указал библиотеку?
Я использую Ubuntu 19.04 на VirtualBox Windows10
Сообщение об ошибке сборки:
/usr/bin/ld: CMakeFiles/obj.clang-tblgen.dir/TableGen.cpp.o: in function `main':
/home/username/src/llvm-project/clang/utils/TableGen/TableGen.cpp:306: undefined reference to `llvm::cl::ParseCommandLineOptions(int, char const* const*, llvm::StringRef, llvm::raw_ostream*, char const*)'
collect2: error: ld returned 1 exit status
Параметры cmake:
cmake -G "Unix Makefiles" -DCMAKE_BUILD_TYPE=RelWithDebInfo -DCMAKE_INSTALL_PREFIX="/home/username/clang_test_opt" -DCMAKE_C_FLAGS="-I/home/username/opt/include -I/home/username/src/llvm-project/include -I/home/username/src/llvm-project/llvm/include -L/home/username/opt/lib -lLLVMSupport" -DCMAKE_CXX_FLAGS="-I/home/username/opt/include -I/home/username/src/llvm-project/clang/include -I/home/username/src/llvm-project/llvm/include -L/home/username/opt/lib -lLLVMSupport" -DLLVM_TABLEGEN_EXE="/home/username/opt/bin/llvm-tblgen" -DLLVM_LIBRARY_DIR="/home/username/llvm-project/llvm/lib" -DLLVM_TOOLS_BINARY_DIR="/home/username/opt/bin" -DLLVM_MAIN_INCLUDE_DIR="/home/username/src/llvm-project/llvm/include" -DLLVM_ENABLE_RTTI=ON -DLLVM_DIR="/home/username/src/llvm-project/llvm/cmake" ../llvm-project/clang