用gcc編譯cpp文件:c++
$ g++ transE.cpp -o transE -pthread -O3 -march=native
出現如下錯誤:git
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++)。github
其餘解決方案包括在Xcode路徑下把libstdc++拷過來,可是我沒下Xcode,它有幾個G並且評價只有3分/5分bash
而後gcc -v看了一下本身是用homebrew裝的gcc,而後使用ui
IcarusdeMacBook-Pro:~ icarus$ which gccspa
/usr/bin/gcc3d
只有這樣能查看mac自帶的gcc可執行文件路徑,其他時候由於在~/.bash_profile中設置了gcc默認爲gcc-7(即便後來刪除當時的配置也沒用)。code
而後對比如下命令的輸出知道只要編譯時前綴爲/usr/bin/gcc就表示用的是gcc 4.2.1:blog
相似地,用g++編譯時也把前綴改成/usr/bin/g++便可。homebrew
編譯成功(有warning,是cpp文件自己的問題)