clang говорит "файл cstdlib не найден" - PullRequest
4 голосов
/ 27 июля 2011

При почти стандартной установке Ubuntu 11.04 я установил clang.

Я пытаюсь скомпилировать это:

#include <cstdlib>
int main(){
  return 0;
}

g ++ может справиться с этим просто отлично, но ошибки clang ++ выходят: фатальная ошибка: файл 'cstdlib' не найден

Может кто-нибудь объяснить, почему это происходит?и что нужно сделать, чтобы эта работа?Я ожидал, что clang ++ будет заменой g ++.

1 Ответ

5 голосов
/ 27 июля 2011

Похоже, что ваша сборка Clang не ищет правильные пути включения платформы.Попробуйте проверить с помощью

clang -v ...

, где он ищет заголовки (и убедитесь, что на вашей платформе есть пути, которые там есть).Вы возможно должны добавить дополнительные каталоги включения (например, /usr/include/c++/xy).

Возможно, вы захотите взглянуть на исходный файл lib/Frontend/InitHeaderSearch.cpp, метод AddDefaultCPlusPlusIncludePaths выполняет определенную магию, связанную с дистрибутивом / gcc-версией (мне пришлось однажды исправить это для моей собственной системы).

...