Mac os下gcc编译错误解决方案

用gcc编译cpp文件:

$ g++ transE.cpp -o transE -pthread -O3 -march=native

出现以下错误:

dyld: Symbol not found: __ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED1Ev Referenced from: $ANTSPATH/ANTS (which was built for Mac OS X 10.13) 
Expected in: /usr/lib/libstdc++.6.0.9.dylib in $ANTSPATH/ANTS Abort trap: 6

原因是现在用的gcc版本过高,已经用一个新的c++标准库lib++替换原来的libstdc++,要使用这个库的话需要让gcc编译时可以选定低版本gcc(低版本里有libstc++)。

其他解决方案包括在Xcode路径下把libstdc++拷过来,但是我没下Xcode,它有几个G而且评价只有3分/5分

然后gcc -v看了一下自己是用homebrew装的gcc,然后使用


IcarusdeMacBook-Pro:~ icarus$ which gcc


/usr/bin/gcc

只有这样能查看mac自带的gcc可执行文件路径,其余时候因为在~/.bash_profile中设置了gcc默认为gcc-7(即使后来删除当时的配置也没用)。

然后对比以下命令的输出知道只要编译时前缀为/usr/bin/gcc就表示用的是gcc 4.2.1:

Mac os下gcc编译错误解决方案

类似地,用g++编译时也把前缀改为/usr/bin/g++即可。

编译成功(有warning,是cpp文件本身的问题)

参考:https://github.com/ANTsX/ANTs/issues/551

原文链接: https://www.cnblogs.com/IcarusYu/p/11274015.html

欢迎关注

微信关注下方公众号,第一时间获取干货硬货;公众号内回复【pdf】免费获取数百本计算机经典书籍

    Mac os下gcc编译错误解决方案

原创文章受到原创版权保护。转载请注明出处:https://www.ccppcoding.com/archives/300089

非原创文章文中已经注明原地址,如有侵权,联系删除

关注公众号【高性能架构探索】,第一时间获取最新文章

转载文章受原作者版权保护。转载请注明原作者出处!

(0)
上一篇 2023年2月15日 下午9:08
下一篇 2023年2月15日 下午9:09

相关推荐