Ответ 1
Перейдите в llvm-build/tools/clang и запустите "make BUILD_EXAMPLES = 1".
Мне нужен простой пример, чтобы начать использовать clang. Я загрузил llvm и clang и построил:
mkdir llvm-build
cd llvm-build
../llvm/configure
make
Я попытался создать PrintFunctionNames из примеров clang, но получил сообщение об ошибке:
../../../../Makefile.common: 61:../../../../Makefile.config: Нет такого файла или каталога .. /../../../Makefile.common:69:/Makefile.rules: Нет такого файла или каталога make: * Нет правила для создания цели /Makefile.rules. Стоп.
Файл Readme говорит, что нужен только make. Итак, как создать этот плагин?
Перейдите в llvm-build/tools/clang и запустите "make BUILD_EXAMPLES = 1".
Скорее всего, у вас будет ваш багаж LLVM и по пути инструментов вы также проверили ствол Clang [объясняется при строительстве Clang через http://clang.llvm.org/get_started.html.
Руководство по сборке Makefile: http://llvm.org/docs/MakefileGuide.html
В OS X установка сборки немного отличается, но в Debian Linux я ежедневно создаю ее следующим образом:
../trunk/configure --enable-target = x86_64, arm, cpp, cbe --with-built-clang --enable-pic --enable-polly --enable-shared --with-cxx- include-arch = x86_64 --enable-optimized --with-optimize-option = -Os --enable-assertions --disable-bootstrap --disable-multilib --enable-jit --enable-threads --no-create --no-рекурсии
затем применяя make -j (n + 1 число ядер) в команде для моей системы Pentium D 945:
сделать [создание против autotools make -j (n + 1) не всегда строит llvm чисто, как и против cmake. Поэтому, если вы хотите запускать все ядра, ожидайте возможность запуска make -j (n + 1) более одного раза, чтобы получить чистую сборку.
Стандартная форма без доступа к нескольким ядрам:
сделать BUILD_EXAMPLES = '1'//Прочитать примечание ниже
всегда приводит к чистой сборке, и если она не сообщает об ошибке LLVM.
Примечание. Если вы находитесь на верхнем уровне, вы можете обновить ствол llvm, соединительную линию проекта и соединительную магистраль следующим образом:
сделать тулт
Затем перейдите и запустите make снова, когда BUILD_EXAMPLES = 1 настроен раньше времени.
сделать BUILD_EXAMPLES = '1'
ПРИМЕЧАНИЕ. Autotools позволяет настраивать BUILD_EXAMPLES = '1', но будет игнорировать флаг при запуске make, если вы явно не включите BUILD_EXAMPLES = '1' после make в командной строке.
В верхней части дерева LLVM, которое вы создаете против бега, BUILD_EXAMPLES = '1' будет создавать конкретные примеры LLVM, а затем заходить в ваш путь сборки/инструментов/clang, которые вы затем должны запустить, чтобы BUILD_EXAMPLES = '1' снова построить примеры Клана.
Следовательно:
LLVM Top:
сделать BUILD_EXAMPLES = '1'//для примеров LLVM cd tools/clang make BUILD_EXAMPLES = '1'//для конкретных примеров Clang
Проверьте примеры установки в /usr/local/bin для LLVM и/usr/local/lib/для Clang.
Если вы используете CMAKE, местоположение по умолчанию для двоичных примеров находится в/usr/local/examples
Я выполнил инструкции http://clang.llvm.org/get_started.html с двумя исключениями:
Я выпустил cmake так:
cd build
cmake -DLLVM_BUILD_EXAMPLES = 1 -DCLANG_BUILD_EXAMPLES = 1..
После этого (и компиляции курса (make -j8)) я мог бы найти примеры в каталоге сборки:
find -iname '*printfunctionname*'
./lib/PrintFunctionNames.so
...
Вчера я попытался сделать что-то похожее: получить список методов в классе с использованием clang и преуспеть. Может быть, мой пост также помогает здесь. Моя лучшая помощь была в этом учебнике AST Matches.