Ответ 1
Предположительно, у вас есть исходный код для этого приложения, поэтому вы можете изменить заголовки, чтобы включить правильный заголовок cstdint
, так как Clang 3.0 (к которому подключаются инструменты Lion) имеет заголовок.
Быстрое решение
Заголовок находится под каталогом tr1
, поэтому вы захотите сделать одно из них:
#include <tr1/cstdint>
или
#include <stdint.h> // which will use the C99 header
Более длинное, скучное объяснение
После некоторого дополнительного чтения, поскольку я помню, вы можете сделать это без каталога tr1:
По умолчанию вы будете включать заголовки С++ из /usr/include/c++/4.2.1
, которые являются заголовками GNU GCC. /usr/include/c++/4.2.1/tr1
включает файлы заголовка TR1, такие как cstdint
.
Альтернативный метод заключается в компиляции с использованием интерфейса Clang++ и передачи флага -stdlib=libc++
, который будет использовать заголовки из /usr/include/c++/v1
, которые являются реализациями заголовка Clang С++. Он имеет cstdint
.
Пример:
// file called example.cxx
#include <tr1/cstdint>
int main() {
// whatever...
}
Скомпилируйте это с помощью:
g++ example.cxx
или
clang++ example.cxx
И он будет делать то, что вы хотите.
Если вы не хотите использовать версию tr1
(примерно то же самое, если не точно):
// file called example.cxx
#include <cstdint>
int main() {
// stuff
}
Это скомпилировано следующим образом:
clang++ -stdlib=libc++ example.cxx
Хотя, если вы используете -stdlib=libc++
, это означает, что вы связываетесь с библиотекой Clang С++ libc++
, а не с GCC libstdc++
.