zoukankan      html  css  js  c++  java
  • 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:

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

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

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

  • 相关阅读:
    对象序列化流使用
    字符输入流结合字符打印流实现复制文件
    python 安装一些 直接使用pip无法安装的包 的方法
    linux记不住
    SIP
    uniapp不同型号手机适配
    uniapp app头部渐变
    vue安卓苹果下载链接合并
    Typescript
    Nodejs
  • 原文地址:https://www.cnblogs.com/IcarusYu/p/11274015.html
Copyright © 2011-2022 走看看