| 84 | === How to deal with GCC >= 5.1 C++11 ABI on Linux === |
| 85 | |
| 86 | Starting with GCC 5.1, GCC links against [https://gcc.gnu.org/onlinedocs/libstdc++/manual/using_dual_abi.html libstdc++ using the C++11 ABI]. This cause issues with FileGDB ABI SDK (at least with 1.4 and earlier versions) which are provided using the old C++ ABI. |
| 87 | |
| 88 | You'll get linking issues such as |
| 89 | {{{ |
| 90 | .libs/libgdal.so: undefined reference to `FileGDBAPI::Geodatabase::Delete(std::__cxx11::basic_string<wchar_t, std::char_traits<wchar_t>, std::allocator<wchar_t> > const&, std::__cxx11::basic_string<wchar_t, std::char_traits<wchar_t>, std::allocator<wchar_t> > const&)' |
| 91 | .libs/libgdal.so: undefined reference to `FileGDBAPI::Row::SetFloat(std::__cxx11::basic_string<wchar_t, std::char_traits<wchar_t>, std::allocator<wchar_t> > const&, float)' |
| 92 | }}} |
| 93 | |
| 94 | To workaround this, run configure with: |
| 95 | {{{ |
| 96 | $ CXXFLAGS="-D_GLIBCXX_USE_CXX11_ABI=0" ./configure --with-fgdb=/usr/local/FileGDB_API |
| 97 | }}} |
| 98 | |
| 99 | Note that by doing so, you might have issues if using C++ gdal dependencies built with the new ABI, or if using GDAL in a C++ software built with the new ABI. No perfect solution exists until ESRI releases a new binary compiled with the new libstdc++ ABI. |
| 100 | |