【问题标题】:Undefined symbol __istype with /opt/local/bin/g++?带有/opt/local/bin/g++ 的未定义符号__istype?
【发布时间】:2014-01-24 13:25:08
【问题描述】:

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

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,但它最终也给出了同样的错误。

【问题讨论】:

  • 您似乎有自定义安装的 GCC,您运行的 g++ 程序很可能来自系统,而不是您安装的程序,这可能会造成混淆。尝试例如which g++查看你运行的程序在哪个路径。
  • 运行which g++ 表明它在/opt/local/bin/ 中。有区别吗? (即使使用此g++ 仍然会出现相同的错误)。
  • 是的,但是您真的是在调用/opt/local/bin 中的自定义安装g++ 还是系统安装g++?你真的在写吗? /opt/local/bin/g++ ...?
  • 是的,我正在这样做。我的完整命令是/opt/local/bin/g++ -std=c++11 main.cpp -o run。它也给出了同样的错误。
  • 好的。您可能需要编辑问题以包含该信息。

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


【解决方案1】:

我觉得你的glicxx版本有问题,希望这个链接可以帮助到你。 http://psykil.livejournal.com/337476.html

【讨论】:

    猜你喜欢
    • 2022-11-10
    • 1970-01-01
    • 2015-02-03
    • 1970-01-01
    • 2011-09-03
    • 2020-03-30
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多