锵OS X Lion中,找不到cstdint(Clang OS X Lion, cannot fin

2019-06-23 13:19发布

我试图编译使用cstdint的应用程序。 自从苹果弃用的GCC,我想尝试用铿锵编译它,但我得到的错误:

fatal error: 'cstdint' file not found

我知道,GCC 4.6.2版本有该选项-std=c++0x ,包括图书馆,但由于OS X的版本是4.2,这不是多一个不错的选择的。 我如何能前进有什么建议? 我曾试图安装4.6.2,但是建立的gcc编译之前一些需要的库的时候碰到了各种各样的问题。

Answer 1:

据推测,你的源代码这个应用程序,让您可以修改标题包含正确cstdint头,如锵3.0(这狮子的工具来用)确实有头。

快速解决方案

标题是下tr1目录,所以你会想要做任一包括:

#include <tr1/cstdint>

要么

#include <stdint.h> // which will use the C99 header

时间越长,无聊的解释

因为我记得你可以做到这一点没有TR1的目录做一些额外的阅读后:

默认情况下,你将要包括C ++头/usr/include/c++/4.2.1 ,这是GNU GCC头。 /usr/include/c++/4.2.1/tr1包括TR1头文件,像cstdint

另一种方法是使用锵++前端和经过编译-stdlib=libc++标志,将使用标头从/usr/include/c++/v1 ,这是锵的C ++头实现。 它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++ ,这意味着你要链接到锵的C ++库libc++ ,而不是GCC的libstdc++



文章来源: Clang OS X Lion, cannot find cstdint
标签: macos gcc clang