Я хочу использовать Clang и LibTooling для создания некоторых инструментов анализа и преобразования исходного кода на С++. Я создал Clang и LibTooling после этого учебника, и мне удалось запустить и создать некоторые инструменты анализа и скомпилировать программы на С++ с использованием созданного мной Clang-бинарного файла. Однако, если я включаю заголовки из стандартной библиотеки (в исходные файлы или мои инструменты), я сталкиваюсь с проблемами при компиляции или запуске исходных файлов/инструментов. Например, если я запустил clang-check в следующем исходном файле С++:
#include <iostream>
int main() {
std::cout << "Hello";
return 0;
}
Я получаю "фатальную ошибку: файл" iostream "не найден". (Примечание. Я могу скомпилировать программы на С++, например, с пользовательскими классами, а не с программами на С++, использующими стандартную библиотеку.) В попытке решить проблему я создал libС++ (после это руководство, построив его в каталоге llvm/project, где я создал LLVM и Clang), но мне все еще не удается получить Clang и инструменты для использования libС++. Теперь, если я попытаюсь скомпилировать тестовый файл, используя:
export CPLUS_INCLUDE_PATH="~/clang-llvm/llvm/projects/libcxx/include"
export LD_LIBRARY_PATH="~/clang-llvm/llvm/projects/libcxx/lib"
~/clang-llvm/llvm/build/bin/clang++ ~/Documents/main.cpp
Затем я получаю "фатальную ошибку: файл unistd.h" не найден ". Поэтому мой вопрос заключается в следующем: как правильно указать Clang и мои инструменты на использование libС++?
Я запускаю OS X Yosemite 10.10 и использую Clang 3.6.0.