由于GCC 5.1
以后,GCC默认使用新的C++ ABI
和libstdc++
,它与ECW SDK
二进制文件不兼容(至少当前如此)。解决的办法是使用CXXFLAGS="-D_GLIBCXX_USE_CXX11_ABI=0"
选项去构建GDAL
。
./configure CXXFLAGS="-D_GLIBCXX_USE_CXX11_ABI=0"
注意:如果你还使用别的使用新的C++ ABI
的库(例如:likbml,podofo,poppler,cryptopp等,这通常来自发行版自带的),则这个方法无法正常使用。如果你必须使用这些库,你必须找到它们的源码,并使用CXXFLAGS="-D_GLIBCXX_USE_CXX11_ABI=0"
选项重新编译。
主要是同样的代码使用gcc和版本配置不一样导致。
caffe Makefile中修改CXXFLAGS += -MMD -MP为CXXFLAGS += -MMD -MP -D_GLIBCXX_USE_CXX11_ABI=0。