在MAC OSX
上,我正在尝试编译以下代码
#include <list>
int main()
{
std::list<int>::iterator it(0);
return 0;
}
当我运行g++ a.cpp -o a
时,我得到了
a.cpp:5:27: error: calling a private constructor of class
'std::__1::__list_iterator<int, void *>'
std::list<int>::iterator it(0);
^
/Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/../include/c++/v1/list:254:14: note:
implicitly declared private here
explicit __list_iterator(__node_pointer __p) _NOEXCEPT : __ptr_(__p) {}
我的最终目标是编译this C++ code。
修改
真的是gcc吗? MacOS喜欢将gcc别名为clang
我认为你是对的!
$g++ --version
Configured with: --prefix=/Applications/Xcode.app/Contents/Developer/usr --with-gxx-include-dir=/usr/include/c++/4.2.1
Apple LLVM version 7.0.2 (clang-700.1.81)
Target: x86_64-apple-darwin15.6.0
Thread model: posix
查看this是否解决了您的问题(我不知道为什么clang会拒绝标准库实现&std :: list)。
mmhh ......还没有。我的路径是
/usr/local/bin:/usr/bin:/bin:/usr/sbin:/sbin:/opt/X11/bin:/Library/TeX/texbin
和which gcc
表示/usr/local/bin/gcc
。我可能不完全理解另一个答案。