Получение большого количества ошибок компоновщика, связанных с LLVM и clang после сборки из исходного кода.C++

Программы на C++. Форум разработчиков
Ответить
Гость
 Получение большого количества ошибок компоновщика, связанных с LLVM и clang после сборки из исходного кода.

Сообщение Гость »


Я собрал цели clang,llvm,lld,openmp из исходного кода монорепозитория llvm. Я использовал следующие команды:

cmake -G "Ninja" -DLLVM_ENABLE_PROJECTS="clang;lld;llvm;openmp" -DCMAKE_BUILD_TYPE=Debug -DLLVM_USE_LINKER=lld ../llvm -DCMAKE_INSTALL_PREFIX=~/git_repos/llvm-project/install cmake --build. --целевая установка После завершения сборки я пытаюсь скомпилировать и сгенерировать исполняемый файл для файла C++, используя следующие заголовки:

#include "clang/Frontend/ASTUnit.h" #include "clang/Serialization/ASTWriter.h" #include "clang/Serialization/InMemoryModuleCache.h" #include "clang/Tooling/Tooling.h" #include "llvm/ADT/SmallString.h" #include "llvm/Bitstream/BitstreamWriter.h" Команда компиляции выглядит следующим образом:

g++ -I clang/include -I build/tools/clang/include -I build/include -I llvm/include test.cc $CLANGLIBS -lLLVM-14 -L build/lib Переменная $CLANGLIBS имеет значение: -lclangTooling -lclangFrontendTool -lclangFrontend -lclangDriver -lclangSerialization -lclangCodeGen -lclangParse -lclangSema -lclangStaticAnalyzerFrontend -lclangStaticAnalyzerCheckers -lclangStaticAnalyzerCore -lclangAnaанализ - lclangARCMigrate -lclangRewrite -lclangRewriteFrontend -lclangEdit -lclangAST -lclangLex - lclangBasic -lcurses

Когда я запускаю приведенную выше команду, она выдает множество ошибок неопределенных ссылок следующим образом:

/usr/bin/ld: build/lib/libclangTooling.a(AllTUsExecution.cpp.o):(.data.rel+0x0): неопределенная ссылка на `llvm::EnableABIBreakingChecks' /usr/bin/ld: build/lib/libclangTooling.a(AllTUsExecution.cpp.o): в функции `llvm::Error::assertIsChecked()': /home/rajkumar/git_repos/llvm-project/llvm/include/llvm/Support/Error.h:269: неопределенная ссылка на `llvm::Error::fatalUncheckedError() const' /usr/bin/ld: build/lib/libclangTooling.a(ArgumentsAdjusters.cpp.o):(.data.rel+0x0): неопределенная ссылка на `llvm::EnableABIBreakingChecks' /usr/bin/ld: build/lib/libclangTooling.a(Execution.cpp.o): в функции `clang::tooling::internal::createExecutorFromCommandLineArgsImpl(int&, char const**, llvm::cl::OptionCategory& , char const*)': /home/rajkumar/git_repos/llvm-project/clang/lib/Tooling/Execution.cpp:76: неопределенная ссылка на `llvm::toString[abi:cxx11](llvm::Error)' /usr/bin/ld: build/lib/libclangTooling.a(Execution.cpp.o):(.data.rel+0x0): неопределенная ссылка на `llvm::EnableABIBreakingChecks' /usr/bin/ld: build/lib/libclangTooling.a(StandaloneExecution.cpp.o):(.data.rel+0x0): неопределенная ссылка на `llvm::EnableABIBreakingChecks' /usr/bin/ld: build/lib/libclangTooling.a(Tooling.cpp.o): в функции `clang::tooling::runToolOnCodeWithArgs(std::unique_ptr, llvm::Twine const&, std::vector const&, llvm::Twine const&, llvm::Twine const&, std::shared_ptr , std::vector const&)': Наряду с библиотеками clang я также связал все библиотеки LLVM (которые я получил с помощью инструмента llvm-config llvm-config --libs)

Даже после того, как я попробовал пару потоков переполнения стека, мне кажется, это не решило проблему: Ошибка компиляции при EnableABIBreakingChecks

Я очень ценю любую помощь, поскольку я новичок в компиляции и использовании исходного кода llvm.

Спасибо

Раджкумар Ананту.

РЕДАКТИРОВАТЬ:

Причина, по которой я использую g++ для компиляции входного файла, заключается в том, что g++ — мой компилятор по умолчанию, а весь исходный код clang и LLVM компилируется только с использованием g++.
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «C++»