Opened 7 years ago
Closed 7 years ago
#6656 closed defect (fixed)
Cannot build gdal 2.1 with filegdb support on linux
Reported by: | d7rk | Owned by: | warmerdam |
---|---|---|---|
Priority: | normal | Milestone: | |
Component: | default | Version: | 2.1.0 |
Severity: | normal | Keywords: | gdal filegdb build linux |
Cc: |
Description (last modified by )
Build fails (makepkg -src) on manjaro linux after numerous returns of the type:
/home/XXX/tmp/pacaurtmp-XXX/gdal/src/gdal-2.1.0/.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&)' /home/XXX/tmp/pacaurtmp-XXX/gdal/src/gdal-2.1.0/.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)' etc. collect2: error: ld returned 1 exit status make[1]: *** [GNUmakefile:82: gdalinfo] Error 1 make[1]: Leaving directory '/home/XXX/tmp/pacaurtmp-XXX/gdal/src/gdal-2.1.0/apps' make: *** [GNUmakefile:94: apps-target] Error 2
Versions used are: filegdb-api 1.4-2 gdal 2.1.0
Change History (6)
comment:1 by , 7 years ago
Description: | modified (diff) |
---|---|
Version: | 2.1.1 → 2.1.0 |
comment:2 by , 7 years ago
comment:3 by , 7 years ago
Sadly gdal does not build with the flag provided. The same errors are obtained.
comment:4 by , 7 years ago
did you run "make clean" before rebuilding with the new flags ? if not, try it.
comment:5 by , 7 years ago
You were right! It does work.
Sorry for my mistake and thank you so much for your time.
Best regards,
comment:6 by , 7 years ago
Resolution: | → fixed |
---|---|
Status: | new → closed |
I've added a paragraph in the wiki regarding this issue : https://trac.osgeo.org/gdal/wiki/FileGDB#HowtodealwithGCC5.1C11ABIonLinux
Note:
See TracTickets
for help on using tickets.
I assume you use a recent GCC that enables the new libstdc++ C++11 ABI (https://gcc.gnu.org/onlinedocs/libstdc++/manual/using_dual_abi.html), whereas the FileGDB binaries are built with the older one
You can try rebuilding after configuring with: CXXFLAGS="-D_GLIBCXX_USE_CXX11_ABI=0" ./configure [other_options]
But 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.
If you just need read-only support, the builtin OpenFileGDB driver should be good enough.