我试图编译使用cstdint的应用程序。 自从苹果弃用的GCC,我想尝试用铿锵编译它,但我得到的错误:
fatal error: 'cstdint' file not found
我知道,GCC 4.6.2版本有该选项-std=c++0x
,包括图书馆,但由于OS X的版本是4.2,这不是多一个不错的选择的。 我如何能前进有什么建议? 我曾试图安装4.6.2,但是建立的gcc编译之前一些需要的库的时候碰到了各种各样的问题。
我试图编译使用cstdint的应用程序。 自从苹果弃用的GCC,我想尝试用铿锵编译它,但我得到的错误:
fatal error: 'cstdint' file not found
我知道,GCC 4.6.2版本有该选项-std=c++0x
,包括图书馆,但由于OS X的版本是4.2,这不是多一个不错的选择的。 我如何能前进有什么建议? 我曾试图安装4.6.2,但是建立的gcc编译之前一些需要的库的时候碰到了各种各样的问题。
据推测,你的源代码这个应用程序,让您可以修改标题包含正确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++
。