#c #c #clang #llvm
#c #c #лязг #llvm
Вопрос:
Прямо сейчас я использую следующую строку:
clang -Xclang -load -Xclang ../pass/pass.so -O2 -I../library/src/include/ -L../library/src/debug/ -DTAG_BITS=15 -lib1 -lib2 example.ll -o example
где я использую свой пропуск и example.ll
являюсь примером файла, который я связал с файлом времени выполнения (необходимым для пропуска) с помощью llvm-link
. Он компилируется, но clang пропускает библиотеки и вместо этого использует встроенные модули:
clang: argument unused during compilation: '-I ../library/src/include/' [-Wunused-command-line-argument]
Почему библиотека пропускается? Если я делаю это неправильно, есть ли какой-то другой способ скомпилировать связанные модули?
Ответ №1:
Вы попросили clang скомпилировать example.ll
текстовый файл LLVM IR, и никаких других файлов. В тексте LLVM IR нет #include
инструкций в стиле C, поэтому -I
флаг, указывающий clang искать в вашем ../library/src/include/
каталоге файлы для разрешения в #include
директиве, не может повлиять на компиляцию.