Как мне скомпилировать файлы, связанные с llvm-link, и передать мои настроенные библиотеки и пропуск компилятора в clang?

#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 директиве, не может повлиять на компиляцию.