Как я могу скомпилировать только llvm?C++

Программы на C++. Форум разработчиков
Ответить
Anonymous
 Как я могу скомпилировать только llvm?

Сообщение Anonymous »

Я пытался скомпилировать что-то, используя только llvm, но столкнулся со многими проблемами.
Чтобы не упустить ни одной особенности LLVM, я попытался скомпилировать весь llvm- проект в соответствии с командами из этого поста, включая EH, RTTI и утверждение, а также включая libcxx и libc. Сборка завершается нормально, без каких-либо ошибок, поэтому я запустил cmake install, заархивировал выходные данные и поместил их в цепочку инструментов.
Затем я запустил пример проекта, содержащий только привет мир main.cpp. Я приказал использовать LLVM, добавил параметр -nostdc++ -nostdc и включил каталог include/c++/v1, поэтому окончательные команды компиляции выглядят следующим образом:

Код: Выделить всё

/home/nekomiya/.vs/kits/toolchain/x86_64-linux/llvm/19.1.1/bin/clang-19 --target=x86_64-pc-linux-gnu  -isystem /home/nekomiya/.vs/kits/toolchain/x86_64-linux/llvm/19.1.1/include -isystem /home/nekomiya/.vs/kits/toolchain/x86_64-linux/llvm/19.1.1/include/c++/v1 -isystem /home/nekomiya/.vs/kits/toolchain/x86_64-linux/llvm/19.1.1/include/x86_64-unknown-linux-gnu/c++/v1 -g -std=gnu++11 -nostdinc -nostdinc++ -MD -MT CMakeFiles/Test.dir/src/test.cpp.o -MF CMakeFiles/Test.dir/src/test.cpp.o.d -o CMakeFiles/Test.dir/src/test.cpp.o -c /home/nekomiya/.vs/kits/src/test.cpp
но это не сработает:

Код: Выделить всё

/home/nekomiya/.vs/kits/toolchain/x86_64-linux/llvm/19.1.1/include/c++/v1/__configuration/platform.h:35:12: fatal error: 'features.h' file not found
35 | #  include 
|            ^~~~~~~~~~~~
1 error generated.

Затем я поискал функции.h и нашел их в

Код: Выделить всё

/usr/include/c++/13/parallel/features.h
/usr/include/features.h
/usr/include/x86_64-linux-gnu/bits/platform/features.h
и usr/include/features.h дополнительно включает bits/wordsize.h. Интересно, нужно ли мне включать /usr/include, который содержит много ненужных мне файлов, есть ли способ скомпилировать только с помощью llvm?

Подробнее здесь: https://stackoverflow.com/questions/792 ... -only-llvm
Ответить

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

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

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

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

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