2015-11-14 3 views
0

Я установил пакет llvm-3.6-dev на Willy (Ubuntu 15.10). Пакет отлично работает, за исключением одной крошечной проблемы - все заголовки и библиотеки находятся в /usr/include/llvm-3.6, например. /usr/include/llvm-3.6/llvm/IR/Support.h. Это означает, что моя программа, которая ссылается только на llvm/IR/Support.h, не создает против этих пакетов.Ссылка llvm-3.6/llvm as llvm

Есть ли способ, которым я могу сказать G ++ или Ubuntu, чтобы заглянуть внутрь этой папки по умолчанию?

В настоящее время я просто добавляю пути include к командной строке напрямую. Однако это будет ужасно нарушаться, если, например, пакет должен был решить разместить их в /usr/local/include вместо /usr/include, поэтому он довольно хрупкий.

Могу ли я передать дополнительный аргумент apt-get install, чтобы установить его без префикса?

ответ

0

Вы можете просто добавить -I path в свои параметры командной строки g ++ и -L path в команду компоновщика. Тем не менее, LLVM предоставляет инструмент для создания опций, необходимых для сборки с конкретной версией LLVM (до тех пор, пока LLVM сам построен с правильными параметрами)

Для использования функций и заголовков библиотеки llvm вы должны использовать llvm-config --libs, llvm-config --ldflags и --llvm-config --cxxflags, чтобы получить «правильные» варианты для создания кода.

Это должно войти в ваш файл makefile или все, что вы используете для создания кода.

Пример использования этого: https://github.com/Leporacanthicus/lacsap/blob/master/Makefile

, кстати, создать свой собственный LLVM [и Clang] не очень трудно - это занимает некоторое время, около 15 минут на столе с 6-ядра процессор AMD, немного больше на моем четырехъядерной ноутбуке, и изрядное немного меньше на моей машине, на работе)

Это, как я строю лязг + LLVM:

ЗАКАНЧИВАТЬ LLVM к по:

cd sources  # Or whatever you want to keep your LLVM sources. 
git clone http://llvm.org/git/llvm.git llvm 

Затем создайте временный «buildllvm» каталог:

CC=clang CXX=clang++ cmake -DCMAKE_BUILD_TYPE=Release -DLLVM_ENABLE_ASSERTIONS=1 -DLLVM_TARGETS_TO_BUILD=X86 ../llvm 
make -j 8 
sudo make install 

Отрегулировать число 8, чтобы быть вокруг такой же, как у вас есть ядра процессора.

Это не указать каталог, так что будет установлен в/USR/местные/{Lib, включают в себя, ...}

Я также построить отладочную версию библиотеки:

export CC=clang 
export CXX=clang++ 
cmake -DCMAKE_BUILD_TYPE=Debug -DCMAKE_INSTALL_PREFIX=/usr/local/llvm-debug -DLLVM_TARGETS_TO_BUILD=X86 ../llvm 
make -j 8 
sudo make install 

, который определяет каталог установки.

+0

Я установил llvm-3.6-dev, но у меня нет программы llvm-config – Puppy

+0

А, но у меня есть llvm-config-3.6. – Puppy

+0

Я не мог не заметить, что Makefile, с которым вы связаны, по-прежнему жестко кодирует местоположение llvm-config. У меня есть llvm-config-3.6 на моем пути, но оболочка, похоже, не хочет обрабатывать ее из моего скрипта :( – Puppy

Смежные вопросы