[gdal-dev] Error Compiling GDAL with ESRI FileGeodatabase Support On Ubuntu 16.04

Even Rouault even.rouault at spatialys.com
Thu Aug 4 14:02:24 PDT 2016


On Thursday 04 August 2016 15:59:22 Andrew Joseph wrote:
> I had originally compiled without any of those flags (thought that might
> have been the issue), but still get an error  though it is different:

You may need to pass -std=C++03 and/or -D_GLIBCXX_USE_CXX11_ABI=0 as CXXFLAGS.

> 
> /tmp/gdal/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&)'
> /tmp/gdal/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)'
> /tmp/gdal/libgdal.so: undefined reference to
> `kmlengine::Href::Parse(std::__cxx11::basic_string<char,
> std::char_traits<char>, std::allocator<char> > const&)'
> /tmp/gdal/libgdal.so: undefined reference to
> `FileGDBAPI::Row::SetDouble(std::__cxx11::basic_string<wchar_t,
> std::char_traits<wchar_t>, std::allocator<wchar_t> > const&, double)'
> /tmp/gdal/libgdal.so: undefined reference to
> `FileGDBAPI::Geodatabase::GetQueryName(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> >&) c                               onst'
> /tmp/gdal/libgdal.so: undefined reference to
> `FileGDBAPI::Row::GetDouble(std::__cxx11::basic_string<wchar_t,
> std::char_traits<wchar_t>, std::allocator<wchar_t> > const&, double&) const'
> /tmp/gdal/libgdal.so: undefined reference to
> `FileGDBAPI::Geodatabase::CreateTable(std::__cxx11::basic_string<char,
> std::char_traits<char>, std::allocator<char> > const&,
> std::__cxx11::basic_string<wchar_t, std::char_traits<wchar_t>,
> std::allocator<wchar_t> > const&, FileG
> DBAPI::Table&)'
> /tmp/gdal/libgdal.so: undefined reference to
> `FileGDBAPI::Row::SetGUID(std::__cxx11::basic_string<wchar_t,
> std::char_traits<wchar_t>, std::allocator<wchar_t> > const&,
> FileGDBAPI::Guid const&)'
> /tmp/gdal/libgdal.so: undefined reference to
> `kmlengine::KmzFile::ReadKmlAndGetPath(std::__cxx11::basic_string<char,
> std::char_traits<char>, std::allocator<char> >*,
> std::__cxx11::basic_string<char, std::char_traits<char>,
> std::allocator<char> >*) const'
> /tmp/gdal/libgdal.so: undefined reference to
> `FileGDBAPI::Row::SetNull(std::__cxx11::basic_string<wchar_t,
> std::char_traits<wchar_t>, std::allocator<wchar_t> > const&)'
> /tmp/gdal/libgdal.so: undefined reference to
> `FileGDBAPI::FieldInfo::GetFieldName(int,
> std::__cxx11::basic_string<wchar_t, std::char_traits<wchar_t>,
> std::allocator<wchar_t> >&) const'
> /tmp/gdal/libgdal.so: undefined reference to
> `FileGDBAPI::OpenGeodatabase(std::__cxx11::basic_string<wchar_t,
> std::char_traits<wchar_t>, std::allocator<wchar_t> > const&,
> FileGDBAPI::Geodatabase&)'
> /tmp/gdal/libgdal.so: undefined reference to
> `FileGDBAPI::Row::GetFloat(std::__cxx11::basic_string<wchar_t,
> std::char_traits<wchar_t>, std::allocator<wchar_t> > const&, float&) const'
> /tmp/gdal/libgdal.so: undefined reference to
> `FileGDBAPI::Row::GetDate(std::__cxx11::basic_string<wchar_t,
> std::char_traits<wchar_t>, std::allocator<wchar_t> > const&, tm&) const'
> /tmp/gdal/libgdal.so: undefined reference to
> `FileGDBAPI::Table::GetDocumentation(std::__cxx11::basic_string<char,
> std::char_traits<char>, std::allocator<char> >&) const'
> /tmp/gdal/libgdal.so: undefined reference to
> `FileGDBAPI::Row::SetShort(std::__cxx11::basic_string<wchar_t,
> std::char_traits<wchar_t>, std::allocator<wchar_t> > const&, short)'
> /tmp/gdal/libgdal.so: undefined reference to
> `kmlengine::KmzFile::OpenFromString(std::__cxx11::basic_string<char,
> std::char_traits<char>, std::allocator<char> > const&)'
> /tmp/gdal/libgdal.so: undefined reference to
> `FileGDBAPI::Geodatabase::OpenTable(std::__cxx11::basic_string<wchar_t,
> std::char_traits<wchar_t>, std::allocator<wchar_t> > const&,
> FileGDBAPI::Table&)'
> /tmp/gdal/libgdal.so: undefined reference to
> `FileGDBAPI::Geodatabase::CreateFeatureDataset(std::__cxx11::basic_string<ch
> ar, std::char_traits<char>, std::allocator<char> > const&)'
> /tmp/gdal/libgdal.so: undefined reference to
> `FileGDBAPI::Row::SetDate(std::__cxx11::basic_string<wchar_t,
> std::char_traits<wchar_t>, std::allocator<wchar_t> > const&, tm const&)'
> /tmp/gdal/libgdal.so: undefined reference to
> `FileGDBAPI::Row::GetBinary(std::__cxx11::basic_string<wchar_t,
> std::char_traits<wchar_t>, std::allocator<wchar_t> > const&,
> FileGDBAPI::ByteArray&) const'
> /tmp/gdal/libgdal.so: undefined reference to
> `FileGDBAPI::Row::SetInteger(std::__cxx11::basic_string<wchar_t,
> std::char_traits<wchar_t>, std::allocator<wchar_t> > const&, int)'
> /tmp/gdal/libgdal.so: undefined reference to
> `FileGDBAPI::Table::DeleteField(std::__cxx11::basic_string<wchar_t,
> std::char_traits<wchar_t>, std::allocator<wchar_t> > const&)'
> /tmp/gdal/libgdal.so: undefined reference to
> `FileGDBAPI::Geodatabase::ExecuteSQL(std::__cxx11::basic_string<wchar_t,
> std::char_traits<wchar_t>, std::allocator<wchar_t> > const&, bool,
> FileGDBAPI::EnumRows&) const'
> /tmp/gdal/libgdal.so: undefined reference to
> `FileGDBAPI::CreateGeodatabase(std::__cxx11::basic_string<wchar_t,
> std::char_traits<wchar_t>, std::allocator<wchar_t> > const&,
> FileGDBAPI::Geodatabase&)'
> /tmp/gdal/libgdal.so: undefined reference to
> `FileGDBAPI::Geodatabase::GetChildDatasets(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&,
> std::vector<std::__cxx11::basic_string<wchar_t, std::char_traits<wchar_t>,
> std::allocator<wchar_t> >,
> std::allocator<std::__cxx11::basic_string<wchar_t,
> std::char_traits<wchar_t>, std::allocator<wchar_t> > > >&) const'
> /tmp/gdal/libgdal.so: undefined reference to
> `kmldom::SerializePretty[abi:cxx11](boost::intrusive_ptr<kmldom::Element>
> const&)'
> /tmp/gdal/libgdal.so: undefined reference to
> `kmldom::Parse(std::__cxx11::basic_string<char, std::char_traits<char>,
> std::allocator<char> > const&, std::__cxx11::basic_string<char,
> std::char_traits<char>, std::allocator<char> >*)'
> /tmp/gdal/libgdal.so: undefined reference to
> `FileGDBAPI::Table::AddField(std::__cxx11::basic_string<char,
> std::char_traits<char>, std::allocator<char> > const&)'
> /tmp/gdal/libgdal.so: undefined reference to
> `FileGDBAPI::Row::SetBinary(std::__cxx11::basic_string<wchar_t,
> std::char_traits<wchar_t>, std::allocator<wchar_t> > const&,
> FileGDBAPI::ByteArray const&)'
> /tmp/gdal/libgdal.so: undefined reference to
> `FileGDBAPI::Guid::ToString(std::__cxx11::basic_string<wchar_t,
> std::char_traits<wchar_t>, std::allocator<wchar_t> >&)'
> /tmp/gdal/libgdal.so: undefined reference to
> `FileGDBAPI::Row::IsNull(std::__cxx11::basic_string<wchar_t,
> std::char_traits<wchar_t>, std::allocator<wchar_t> > const&, bool&) const'
> /tmp/gdal/libgdal.so: undefined reference to
> `FileGDBAPI::Row::GetShort(std::__cxx11::basic_string<wchar_t,
> std::char_traits<wchar_t>, std::allocator<wchar_t> > const&, short&) const'
> /tmp/gdal/libgdal.so: undefined reference to
> `FileGDBAPI::Row::GetXML(std::__cxx11::basic_string<wchar_t,
> std::char_traits<wchar_t>, std::allocator<wchar_t> > const&,
> std::__cxx11::basic_string<char, std::char_traits<char>,
> std::allocator<char> >&) const'
> /tmp/gdal/libgdal.so: undefined reference to
> `FileGDBAPI::DeleteGeodatabase(std::__cxx11::basic_string<wchar_t,
> std::char_traits<wchar_t>, std::allocator<wchar_t> > const&)'
> /tmp/gdal/libgdal.so: undefined reference to
> `FileGDBAPI::Row::GetInteger(std::__cxx11::basic_string<wchar_t,
> std::char_traits<wchar_t>, std::allocator<wchar_t> > const&, int&) const'
> /tmp/gdal/libgdal.so: undefined reference to
> `FileGDBAPI::Table::Search(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&, bool, F
> ileGDBAPI::EnumRows&)'
> /tmp/gdal/libgdal.so: undefined reference to
> `FileGDBAPI::Row::GetString(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'
> /tmp/gdal/libgdal.so: undefined reference to
> `FileGDBAPI::Guid::FromString(std::__cxx11::basic_string<wchar_t,
> std::char_traits<wchar_t>, std::allocator<wchar_t> > const&)'
> /tmp/gdal/libgdal.so: undefined reference to
> `kmlengine::KmzFile::ReadFile(char const*, std::__cxx11::basic_string<char,
> std::char_traits<char>, std::allocator<char> >*) const'
> /tmp/gdal/libgdal.so: undefined reference to
> `FileGDBAPI::Table::Search(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&, FileGDB
> API::Envelope const&, bool, FileGDBAPI::EnumRows&)'
> /tmp/gdal/libgdal.so: undefined reference to
> `FileGDBAPI::Row::SetXML(std::__cxx11::basic_string<wchar_t,
> std::char_traits<wchar_t>, std::allocator<wchar_t> > const&,
> std::__cxx11::basic_string<char, std::char_traits<char>,
> std::allocator<char> > const&)'
> /tmp/gdal/libgdal.so: undefined reference to
> `FileGDBAPI::Table::GetDefinition(std::__cxx11::basic_string<char,
> std::char_traits<char>, std::allocator<char> >&) const'
> /tmp/gdal/libgdal.so: undefined reference to
> `FileGDBAPI::Row::SetString(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&)'
> /tmp/gdal/libgdal.so: undefined reference to
> `FileGDBAPI::ErrorInfo::GetErrorDescription(int,
> std::__cxx11::basic_string<wchar_t, std::char_traits<wchar_t>,
> std::allocator<wchar_t> >&)'
> /tmp/gdal/libgdal.so: undefined reference to
> `FileGDBAPI::Row::GetGUID(std::__cxx11::basic_string<wchar_t,
> std::char_traits<wchar_t>, std::allocator<wchar_t> > const&,
> FileGDBAPI::Guid&) const'
> collect2: error: ld returned 1 exit status
> make[1]: *** [gdalinfo] Error 1
> 
> 
> On Thu, Aug 4, 2016 at 3:26 PM, Even Rouault <even.rouault at spatialys.com>
> 
> wrote:
> > Andrew,
> > 
> > Remove
> > CXX="g++ -std=c++14" CPPFLAGS="-DMAKE_SANITIZE_HAPPY -fsanitize=undefined
> > -
> > fsanitize=address" LDFLAGS="-fsanitize=undefined -fsanitize=address"
> > 
> > from the configure.
> > 
> > They are not intended for production use. More specifically the FGDB SDK
> > doesn't like compiling with C++11 or 14.
> > 
> > --
> > Spatialys - Geospatial professional services
> > http://www.spatialys.com

-- 
Spatialys - Geospatial professional services
http://www.spatialys.com


More information about the gdal-dev mailing list