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

Andrew Joseph ap.joseph at live.com
Thu Aug 4 15:00:29 PDT 2016


using ./configure CXXFLAGS="-D_GLIBCXX_USE_CXX11_ABI=0" results in:

/tmp/gdal/gdal/libgdal.so: undefined reference to
`PoDoFo::PdfMemDocument::SetPassword(std::string
const&)'
/tmp/gdal/gdal/libgdal.so: undefined reference to
`mongo::client::Options::setSSLPEMKeyFile(std::string
const&)'
/tmp/gdal/gdal/libgdal.so: undefined reference to
`mongo::client::Options::setSSLCRLFile(std::string
const&)'
/tmp/gdal/gdal/libgdal.so: undefined reference to
`mongo::DBClientWithCommands::auth(std::string const&, std::string const&,
std::string const&, std::string&, bool)'
/tmp/gdal/gdal/libgdal.so: undefined reference to `mongo::msgasserted(int,
std::string const&)'
/tmp/gdal/gdal/libgdal.so: undefined reference to
`mongo::BulkOperationBuilder::BulkOperationBuilder(mongo::DBClientBase*,
std::string const&, bool, bool)'
/tmp/gdal/gdal/libgdal.so: undefined reference to
`kealib::KEAImageIO::setGCPs(std::vector<kealib::KEAImageGCP*,
std::allocator<kealib::KEAImageGCP*> >*, std::string)'
/tmp/gdal/gdal/libgdal.so: undefined reference to
`kealib::KEAImageIO::createKEAImage(std::string,
kealib::KEADataType, unsigned int, unsigned int, unsigned int,
std::vector<std::string, std::allocator<std::string> >*,
kealib::KEAImageSpatialInfo*, unsigned int, unsigned int, int, unsigned
long long, unsigned long long, double, unsigned long long, unsigned long
long, unsigned int)'
/tmp/gdal/gdal/libgdal.so: undefined reference to `mongo::BSONObjBuilder::
numStrs'
/tmp/gdal/gdal/libgdal.so: undefined reference to `kealib::KEAImageIO::
getGCPProjection()'
/tmp/gdal/gdal/libgdal.so: undefined reference to
`mongo::client::Options::setSSLCAFile(std::string
const&)'
/tmp/gdal/gdal/libgdal.so: undefined reference to `mongo::client::Options::
setSSLPEMKeyPassword(std::string const&)'
/tmp/gdal/gdal/libgdal.so: undefined reference to
`kealib::KEAImageIO::getImageBandMetaData(unsigned
int)'
/tmp/gdal/gdal/libgdal.so: undefined reference to
`mongo::DBClientWithCommands::getCollectionNames(std::string const&,
mongo::BSONObj const&)'
/tmp/gdal/gdal/libgdal.so: undefined reference to `kealib::KEAImageIO::
isKEAImage(std::string)'
/tmp/gdal/gdal/libgdal.so: undefined reference to
`kealib::KEAImageIO::setImageMetaData(std::string,
std::string)'
/tmp/gdal/gdal/libgdal.so: undefined reference to
`kealib::KEAImageIO::openKeaH5RDOnly(std::string,
int, unsigned long long, unsigned long long, double, unsigned long long,
unsigned long long)'
/tmp/gdal/gdal/libgdal.so: undefined reference to
`mongo::DBClientWithCommands::getDatabaseNames()'
/tmp/gdal/gdal/libgdal.so: undefined reference to
`kealib::KEAImageIO::openKeaH5RW(std::string,
int, unsigned long long, unsigned long long, double, unsigned long long,
unsigned long long)'
/tmp/gdal/gdal/libgdal.so: undefined reference to
`mongo::ConnectionString::parse(std::string
const&, std::string&)'
/tmp/gdal/gdal/libgdal.so: undefined reference to `kealib::KEAImageIO::
getImageMetaData()'
/tmp/gdal/gdal/libgdal.so: undefined reference to
`mongo::ConnectionString::connect(std::string&,
double) const'
/tmp/gdal/gdal/libgdal.so: undefined reference to
`mongo::Status::toString() const'
/tmp/gdal/gdal/libgdal.so: undefined reference to `mongo::OID::toString()
const'
/tmp/gdal/gdal/libgdal.so: undefined reference to `mongo::BSONElement::
jsonString(mongo::JsonStringFormat, bool, int) const'
/tmp/gdal/gdal/libgdal.so: undefined reference to `kealib::KEAImageIO::
getImageBandDescription(unsigned int)'
/tmp/gdal/gdal/libgdal.so: undefined reference to
`mongo::BSONObj::jsonString(mongo::JsonStringFormat, int, bool) const'
/tmp/gdal/gdal/libgdal.so: undefined reference to
`kealib::KEAImageIO::setImageBandMetaData(unsigned
int, std::string, std::string)'
/tmp/gdal/gdal/libgdal.so: undefined reference to `kealib::KEAImageIO::
setImageBandDescription(unsigned int, std::string)'
/tmp/gdal/gdal/libgdal.so: undefined reference to
`mongo::OID::init(std::string const&)'
collect2: error: ld returned 1 exit status
make[1]: *** [gdalinfo] Error 1

and ./configure CXXFLAGS="-std=C++03 -D_GLIBCXX_USE_CXX11_ABI=0" results in:
configure: error: "You don't have a working C++ compiler." (I'm a java
developer so not very familiar with c/c++ compilation)

On Thu, Aug 4, 2016 at 4:02 PM, Even Rouault <even.rouault at spatialys.com>
wrote:

> 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
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.osgeo.org/pipermail/gdal-dev/attachments/20160804/7918fbf1/attachment-0001.html>


More information about the gdal-dev mailing list