用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:

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

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

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

转载于:https://www.cnblogs.com/IcarusYu/p/11274015.html

Mac os下gcc编译错误解决方案相关推荐

  1. Linux系统下GCC编译错误:“undefined reference to ‘sqrt‘”

    Linux系统下GCC编译错误:"undefined reference to 'sqrt'",解决方法:-lm 数学函数sqrt()位于libm.so库文件中(这些库文件通常位于 ...

  2. Q106:Mac系统下安装编译PBRT-V3

    Mac和Linux比较类似,所以,"Mac系统下安装编译PBRT-V3"和"Linux系统下安装编译PBRT-V3"是非常相似的. 基于"Q106:L ...

  3. mac os下valgrind的安装

    valgrind是一款性能分析工具,功能强大. 在mac os下的安装略有不同,特写此文以记之. 现在最新的版本是3.8.1 tar jxvf valgrind-3.8.1.tar.bz2 cd va ...

  4. 在MAC OS 下配置python + Flask ,并支持pyCharm编辑器

    https://www.cnblogs.com/lgphp/p/3841098.html 在MAC OS 下配置python + Flask ,并支持pyCharm编辑器 flask是一个micro ...

  5. Mac OS下Tomcat native-APR的安装

    Mac OS下Tomcat native-APR的安装 1. 下载并编译APR 下载APR 在终端编译APR cd /<your_apr_dir>/aprCFLAGS='-arch x86 ...

  6. Mac OS 下使用 afconvert 命令,处理音频格式转换

    在上一篇<Mac OS 下使用 you-get 下载音悦台 MV .网易云音乐等>给大家介绍了如何下载MV.音乐等资源,但是出现了一些不常见的音频格式,导致在有些播放器上无法解码播放,所以 ...

  7. Linux系统怎么编译sin,linux下gcc编译sin函数出错的问题

    linux下gcc编译sin函数出错的问题 收藏 Q: I keep getting errors due to library functions being undefined, but I'm ...

  8. linux下gcc编译c文件生成可执行文件的四个步骤

    Linux下gcc编译c文件为可执行文件分为四个步骤: 分别是 预编译.编译.汇编.链接. 1.预编译( 生成 hello.i 文件) 预编译的处理规则: 1. 将所有的 "#define& ...

  9. mac os android sd卡,如何在Mac OS下永久删除SD卡上的文件?

    Mac数据恢复软件可以轻松恢复已删除或格式化的数据.因此,在Mac OS下从SD卡删除文件时,Mac数据恢复软件也可以恢复删除的文件.在某些情况下,仅删除是不够的.例如,当您要丢弃旧的SD卡时,应确保 ...

  10. Linux下gcc编译c程序生成可执行文件的过程

    Linux下gcc编译c程序生成可执行文件 一.准备 hello.c 文件 1.在当前目录下新建c文件 $:vim hello.c 2.按i进入编辑模式.按esc退出编辑模式,输入源代码 #inclu ...

最新文章

  1. JAVA实现调整数组顺序使奇数位于偶数前面问题(《剑指 offer》)
  2. 001-测试用例简介
  3. 对AI毫无了解?本文带你轻松了解AI
  4. Tomcat 部署项目的三种方法
  5. Linux命令之hexdump - ”十六“进制查看器
  6. 阿里巴巴开源技术汇总:115个软件(五)
  7. FireFox使用百度网盘插件
  8. 网站中引入百度地图的方法分享(含源码)
  9. 看完这篇文章,还不知道怎么学单片机,来打我!
  10. 自己写的随手记事程序
  11. 勒索病毒爆发波及中石油:2万座加油站断网
  12. 14期《读万卷书,行万里路》4月刊
  13. linux 挂载4t移动硬盘,Linux挂载移动硬盘
  14. 用css3实现图片左右翻转
  15. python新建word文档_使用Python 自动生成 Word 文档的教程
  16. 【LoVissy学习笔记】用Python3.82自动发送邮件。QQ邮箱
  17. 小学四年级上册中的计算机,小学四年级信息技术上册教案
  18. 2018年4月份 软件发明专利培训
  19. orb-slam3:优化状态量是camera坐标系下RPV还是body坐标系下RPV探究
  20. jar包执行命令脚本

热门文章

  1. JVM初识之自定义类加载器
  2. 对于区块链在现实落地的一些技术业务关注点
  3. luoguP1991无线通讯网
  4. Revit二次开发: 文件损坏
  5. Flink中task之间的数据交换机制
  6. spring 注入 list和map及enum映射
  7. ORACLE 视图的 with check option
  8. 写给年轻的我们:我们工作到底为了什么
  9. Android-Studio 缓存文件夹配置
  10. Android查看每个线程CPU占用情况,以及工作内容分析