Macos 叮当作响的狮子,找不到力量

Macos 叮当作响的狮子,找不到力量,macos,gcc,clang,Macos,Gcc,Clang,我正在尝试编译一个利用cstdint的应用程序。由于Apple不赞成gcc,我想尝试用clang编译它,但我得到了错误: fatal error: 'cstdint' file not found 我知道GCC4.6.2版本可以选择-std=c++0x,以包含库,但由于OSX版本是4.2,所以这里没有太多选项。对我如何前进有什么建议吗?我曾尝试安装4.6.2,但在构建gcc之前编译一些所需的库时遇到了各种问题。大概,您有此应用程序的源代码,因此可以修改头以包含正确的cstdint头,因为Cla

我正在尝试编译一个利用cstdint的应用程序。由于Apple不赞成gcc,我想尝试用clang编译它,但我得到了错误:

fatal error: 'cstdint' file not found

我知道GCC4.6.2版本可以选择
-std=c++0x
,以包含库,但由于OSX版本是4.2,所以这里没有太多选项。对我如何前进有什么建议吗?我曾尝试安装4.6.2,但在构建gcc之前编译一些所需的库时遇到了各种问题。

大概,您有此应用程序的源代码,因此可以修改头以包含正确的
cstdint
头,因为Clang 3.0(Lion的工具附带)确实有头

快速解决方案 标题位于
tr1
目录下,因此您需要执行以下操作之一:

#include <tr1/cstdint>
使用以下内容编译此文件:

g++ example.cxx

它会做你想做的事

如果您不想使用
tr1
版本(大致相同,如果不完全相同):



<> >如果您使用<代码> -STDLIB=LBC++< /COD>,这意味着您链接到Clang的C++库<代码> LBC++< /COD>,而不是GCC的代码> LBSTDC++< /COD>。p> 我能够在MacOSX10.7.3上编译GCC4.7.0,没有太多麻烦。我相信我使用了Apple GCC来引导编译,而不是我自己的4.6.1。如果需要帮助,请与我联系(请参阅我的个人资料)。(我在4.6.2和4.6.3中没有成功。)Clang不使用GCC的C++11实现及其
-std=C++11
标志。也许捆绑的GCC stdlib已经过时了。但是当然GCC有
@Potatoswatter-MacOSX上捆绑的GCC库被冻结在4.1.2版本,因为该版本和后续版本之间的许可证变更,所以是的,它有点旧了。如果你想在Mac上获得更好的C++11支持,你可以选择安装一个更新的GCC或使用Clang实现。我在Ubuntu 14.04上遇到了这个错误,我必须安装
libc++-dev
才能获得开发文件。然后
-stdlib=libc++
工作正常。
// file called example.cxx
#include <tr1/cstdint>

int main() {
    // whatever...
}
g++ example.cxx
clang++ example.cxx
// file called example.cxx
#include <cstdint>

int main() {
    // stuff
}
clang++ -stdlib=libc++ example.cxx