带/ opt / local / bin / g ++的未定义符号__istype?

时间:2014-01-24 13:25:08

标签: c++ g++ clang clang++

当我用这个编译我的程序时:

g++ -std=c++11 main.cpp -o run 

我收到此错误(不确定,因为我没有使用__istype中的任何代码):

Undefined symbols for architecture x86_64:
  "__istype(int, unsigned long)", referenced from:
      std::ctype<char>::is(unsigned long, char) const in ccuyHAvU.o
ld: symbol(s) not found for architecture x86_64
collect2: error: ld returned 1 exit status

我搜索过但无法找到答案。一个建议是包括libstdc++.a的完整路径,但没有做任何事情:

g++ -std=c++11 main.cpp -o run /opt/local/lib/gcc48/libstdc++.a

但是,当我在我的机器上使用clang++进行编译时,程序会编译并运行。

对于这个特定项目,我必须使用g++(服务器没有clang ++,但确实有g ++ v4.8)。我有什么可以做的吗?

修改:我尝试which g++查看g++的安装位置。然后我运行了命令/opt/local/bin/g++ -std=c++11 main.cpp -o run,但它也最终给出了相同的错误。

1 个答案:

答案 0 :(得分:0)

我认为您的glicxx版本存在问题,我希望此链接可以为您提供帮助。 http://psykil.livejournal.com/337476.html