File GDB API 1.5 Release

13234
22
03-07-2017 07:24 AM
LanceShipman
Esri Regular Contributor
1 22 13.2K

The File Geodatabase API 1.5 is now available for download from GitHub https://github.com/Esri/file-geodatabase-api/tree/master/FileGDB_API_1.5. The FileGDB 1.5 release is primarily a maintenance release with the addition of  a few new compilers and platforms.

 

What’s new at 1.5:

    • MS Visual Studio 2015 support.
    • Allow the use of the Spatial Reference ID to create the spatial reference (BUG-000100781)
    • Support for new operating system versions:

Linux:

     Red Hat

     SUSE Linux Enterprise Server

     Ubuntu

Windows:

     Windows 8.1

     Windows 10.0

MacOS

     Yosemite (10.10)

     El Capitan (10.11)

     Sierra (10.12)

 

Released under the Apache license.

 

Fixed Issues:

BUG-000100782 File Geodatabase: COUNT(0) should return 0 with a WHERE clause that returns no rows (1=0).

BUG-000100783 Remove Windows FileGDBAPI.dll's reliance on Microsoft.VC90.CRT.

BUG-000088293 FileGDB API throws -2147217395 error when executing SQL query with SQL functions.

BUG-000097116 Table::FreeWriteLock does not clear the lock.

22 Comments
BryanBaker
Regular Contributor

The link to the 1.5 version above returns "Not found". I believe the correct link is file-geodatabase-api/FileGDB_API_1.5 at master · Esri/file-geodatabase-api · GitHub . 

LanceShipman
Esri Regular Contributor

Corrected the link in the blog post. Thank you Bryan for pointing this out. 

PaulAustin1
Deactivated User

Any chance you could update the .h files so that they don't define EXT_FILEGDB_API if it is already defined? Adding the first and last lines in bold below does the trick.

#ifndef EXT_FILEGDB_API

#  ifndef EXPORT_FILEGDB_API

#   if defined __linux__ || defined __APPLE__

#    define EXT_FILEGDB_API

#   else

#    define EXT_FILEGDB_API _declspec(dllimport)

#   endif

#  else

#   if defined __linux__ || defined __APPLE__

#    define EXT_FILEGDB_API __attribute__((visibility("default")))

#   else

#    define EXT_FILEGDB_API _declspec(dllexport)

#   endif

#  endif

#endif

Also I notice the copyright information in the header files is not the same license (Apache 2) as the zip packages that contain the header files on github.com.

NicholasReseburg1
Occasional Contributor

do you have any instructions for n00bz on how to get this running in ubuntu?  I followed the readme in the API and "making" just resulted in a bunch of errors like

../../lib/libFileGDBAPI.so: undefined reference to `_wtoi64(wchar_t const*)'
../../lib/libFileGDBAPI.so: undefined reference to `CLSID_FIDSet'

LeoRuss
Emerging Contributor

Hello, 

I am new to this forum and to Esri framework.

We need to generate a Geodatabase file within a Java application.

I downloaded the FileGDB_API-64 archive (we are on Linux) and have been trying to build samples for quite some time. Initially, it would not build because of a compiler error - had gcc 7. Tried different versions. 4.0 was too old, 7 - too new. Finally tried with 5.5, and the variable declaration errors went away. 

Now, I am getting the following:

/usr/bin/ld: warning: libfgdbunixrtl.so, needed by ../../lib/libFileGDBAPI.so, not found (try using -rpath or -rpath-li
nk)
/usr/bin/ld: ./GeodatabaseManagement.o: undefined reference to symbol '_ZNSt8ios_base4InitD1Ev@@GLIBCXX_3.4'

The warning is not legitimate - the library is where the compiler is looking for it. But the error appears to be an internal deficiency.

Can anybody provide some guidance/advice on how I can create a Geodatabase file (file on the file system, not database) within a Java application?

Thank you in advance.

LanceShipman
Esri Regular Contributor

Have they tried the 1.5.1 release?

Lance

LeoRuss
Emerging Contributor

Yes, we have. And could not find functionality that would create

Geodatabase file.

LanceShipman
Esri Regular Contributor

To create a geodatabase see

FileGDB_API\samples\GeodatabaseManagement\GeodatabaseManagement.cpp

// Create a new geodatabase in the current directory.
fgdbError hr;
wstring errorText;
Geodatabase geodatabase;
if ((hr = CreateGeodatabase(L"../GeodatabaseManagement/GdbManagement.gdb", geodatabase)) != S_OK)
{
wcout << "An error occurred while creating the geodatabase." << endl;
ErrorInfo::GetErrorDescription(hr, errorText);
wcout << errorText << "(" << hr << ")." << endl;
return -1;
}

This is a C++ example. We don't have a Java interface.

 

LeoRuss
Emerging Contributor

Hi Lance,

Thank you very much for your help!

I did look at that code, using JNI is an option.

Two questions:

1. It creates Geodatabase file but does not show how to populate it with

data

2. It does not build (under Linux):

make

g++ -fPIC -O3 -m64 -W -fexceptions -D_CONSOLE -DUNICODE -D_UNICODE -DUNIX

-D_REENTRANT -DFILEGDB_API -D__USE_FILE_OFFSET64 -DUNIX_FILEGDB_API -D_FI

LE_OFFSET_BITS=64 -D_LARGEFILE64_SOURCE -I../../include -I. -m64

-L../../lib -o ../bin/GeodatabaseManagement ./GeodatabaseManagement.o

-lFileGDBAPI

/usr/bin/ld: cannot find -lFileGDBAPI

collect2: error: ld returned 1 exit status

Makefile:27: recipe for target '../bin/GeodatabaseManagement' failed

make: *** Error 1

Again, I appreciate your help.

LanceShipman
Esri Regular Contributor

FileGDB_API\samples\ShapeBuffer\ShapeBuffer.cpp provides examples of reading and writing geometries.

FileGDB_API\samples\Editing\Editing.cpp provides examples of editing existing data and search.  

LeoRuss
Emerging Contributor

Great!

Except that build fails with the same error:

make

g++ -fPIC -O3 -m64 -W -fexceptions -D_CONSOLE -DUNICODE -D_UNICODE -DUNIX

-D_REENTRANT -DFILEGDB_API -D__USE_FILE_OFFSET64 -DUNIX_FILEGDB_API -D_FI

LE_OFFSET_BITS=64 -D_LARGEFILE64_SOURCE -I../../include -I. -c

ShapeBuffer.cpp

g++ -fPIC -O3 -m64 -W -fexceptions -D_CONSOLE -DUNICODE -D_UNICODE -DUNIX

-D_REENTRANT -DFILEGDB_API -D__USE_FILE_OFFSET64 -DUNIX_FILEGDB_API -D_FI

LE_OFFSET_BITS=64 -D_LARGEFILE64_SOURCE -I../../include -I. -m64 -L

../../lib -o ../bin/ShapeBuffer ./ShapeBuffer.o -lFileGDBAPI

/usr/bin/ld: cannot find -lFileGDBAPI

collect2: error: ld returned 1 exit status

Makefile:27: recipe for target '../bin/ShapeBuffer' failed

make: *** Error 1

LanceShipman
Esri Regular Contributor

The undefined symbol '_ZNSt8ios_base4InitD1Ev@@GLIBCXX_3.4' was reported by several people. They got this when using gcc instead of g++ as their C++ compiler so your CC/CXX vars should either be unset or set to:

CC=gcc
CXX=g++

This would be the ideal setup if we were recommending one:

OS: Ubuntu 18.04
File GDB API Package: https://github.com/Esri/file-geodatabase-api/blob/master/FileGDB_API_1.5/FileGDB_API_1_5_64gcc51.tar...
Compiler: GCC 7.3.0


Steps:
• Run ‘which g++’ and ‘g++ --version’ to make sure you’re picking up the right compiler.


• Unpack FileGDB_API_1_5_64gcc51.tar.gz from your $HOME so $HOME/FileGDB_API-64gcc51 is created.

• cd to $HOME/FileGDB_API-64gcc51/lib and add that folder to your LD_LIBRARY_PATH

$ cd $HOME/FileGDB_API-64gcc51/lib

$ export LD_LIBRARY_PATH=${PWD}:${LD_LIBRARY_PATH}

• Go to the sample folder and build it:

$ cd $HOME/FileGDB_API-64gcc51/samples/GeodatabaseManagement

$ make clean all
rm -f -v ./GeodatabaseManagement.o ../bin/GeodatabaseManagement
g++ -fPIC -O3 -m64 -W -fexceptions -D_CONSOLE -DUNICODE -D_UNICODE -DUNIX -D_REENTRANT -DFILEGDB_API -D__USE_FILE_OFFSET64 -DUNIX_FILEGDB_API -D_FILE_OFFSET_BITS=64 -D_LARGEFILE64_SOURCE -I../../include -I. -c GeodatabaseManagement.cpp
g++ -fPIC -O3 -m64 -W -fexceptions -D_CONSOLE -DUNICODE -D_UNICODE -DUNIX -D_REENTRANT -DFILEGDB_API -D__USE_FILE_OFFSET64 -DUNIX_FILEGDB_API -D_FILE_OFFSET_BITS=64 -D_LARGEFILE64_SOURCE -I../../include -I. -m64 -L../../lib -o ../bin/GeodatabaseManagement ./GeodatabaseManagement.o –lFileGDBAPI

• Run it:

$ cd ../bin/
$ ./GeodatabaseManagement
The geodatabase has been created.
The geodatabase has been opened.
The geodatabase has been deleted.

LeoRuss
Emerging Contributor

Bless your heart!!!

Will get to it first thing in the morning.

LeoRuss
Emerging Contributor

Hello Lance,

Thank you for your help again.

But my issue is different (see complete output below), the error is

/usr/bin/ld:

cannot find -lFileGDBAPI

#Building from top level (samples) dir)

FileGDB_API-64gcc/lib$ export LD_LIBRARY_PATH=$:$

lruss@lruss:/mnt/2GB_HD/ALAMON/Software/FileGDB_API_1_5_VS2015/FileGDB_API-64gcc/lib$

ls

libfgdbunixrtl.a libfgdbunixrtl.dylib libFileGDBAPI.dylib

lruss@lruss:/mnt/2GB_HD/ALAMON/Software/FileGDB_API_1_5_VS2015/FileGDB_API-64gcc/lib$

cd ../samples

lruss@lruss:/mnt/2GB_HD/ALAMON/Software/FileGDB_API_1_5_VS2015/FileGDB_API-64gcc/samples$

make clean all

make -C Display clean

make[1]: Entering directory

'/mnt/2GB_HD/ALAMON/Software/FileGDB_API_1_5_VS2015/FileGDB_API-64gcc/samples/Display'

rm -f -v ./Display.o ../bin/Display

make[1]: Leaving directory

'/mnt/2GB_HD/ALAMON/Software/FileGDB_API_1_5_VS2015/FileGDB_API-64gcc/samples/Display'

make -C Domains clean

make[1]: Entering directory

'/mnt/2GB_HD/ALAMON/Software/FileGDB_API_1_5_VS2015/FileGDB_API-64gcc/samples/Domains'

rm -f -v ./Domains.o ../bin/Domains

removed './Domains.o'

make[1]: Leaving directory

'/mnt/2GB_HD/ALAMON/Software/FileGDB_API_1_5_VS2015/FileGDB_API-64gcc/samples/Domains'

make -C Editing clean

make[1]: Entering directory

'/mnt/2GB_HD/ALAMON/Software/FileGDB_API_1_5_VS2015/FileGDB_API-64gcc/samples/Editing'

rm -f -v ./Editing.o ../bin/Editing

make[1]: Leaving directory

'/mnt/2GB_HD/ALAMON/Software/FileGDB_API_1_5_VS2015/FileGDB_API-64gcc/samples/Editing'

make -C ExecutingSQL clean

make[1]: Entering directory

'/mnt/2GB_HD/ALAMON/Software/FileGDB_API_1_5_VS2015/FileGDB_API-64gcc/samples/ExecutingSQL'

rm -f -v ./ExecutingSQL.o ../bin/ExecutingSQL

make[1]: Leaving directory

'/mnt/2GB_HD/ALAMON/Software/FileGDB_API_1_5_VS2015/FileGDB_API-64gcc/samples/ExecutingSQL'

make -C FeatureDatasets clean

make[1]: Entering directory

'/mnt/2GB_HD/ALAMON/Software/FileGDB_API_1_5_VS2015/FileGDB_API-64gcc/samples/FeatureDatasets'

rm -f -v ./FeatureDatasets.o ../bin/FeatureDatasets

make[1]: Leaving directory

'/mnt/2GB_HD/ALAMON/Software/FileGDB_API_1_5_VS2015/FileGDB_API-64gcc/samples/FeatureDatasets'

make -C GeodatabaseManagement clean

make[1]: Entering directory

'/mnt/2GB_HD/ALAMON/Software/FileGDB_API_1_5_VS2015/FileGDB_API-64gcc/samples/GeodatabaseManagement'

rm -f -v ./GeodatabaseManagement.o ../bin/GeodatabaseManagement

make[1]: Leaving directory

'/mnt/2GB_HD/ALAMON/Software/FileGDB_API_1_5_VS2015/FileGDB_API-64gcc/samples/GeodatabaseManagement'

make -C Querying clean

make[1]: Entering directory

'/mnt/2GB_HD/ALAMON/Software/FileGDB_API_1_5_VS2015/FileGDB_API-64gcc/samples/Querying'

rm -f -v ./Querying.o ../bin/Querying

make[1]: Leaving directory

'/mnt/2GB_HD/ALAMON/Software/FileGDB_API_1_5_VS2015/FileGDB_API-64gcc/samples/Querying'

make -C ShapeBuffer clean

make[1]: Entering directory

'/mnt/2GB_HD/ALAMON/Software/FileGDB_API_1_5_VS2015/FileGDB_API-64gcc/samples/ShapeBuffer'

rm -f -v ./ShapeBuffer.o ../bin/ShapeBuffer

make[1]: Leaving directory

'/mnt/2GB_HD/ALAMON/Software/FileGDB_API_1_5_VS2015/FileGDB_API-64gcc/samples/ShapeBuffer'

make -C TableSchema clean

make[1]: Entering directory

'/mnt/2GB_HD/ALAMON/Software/FileGDB_API_1_5_VS2015/FileGDB_API-64gcc/samples/TableSchema'

rm -f -v ./TableSchema.o ../bin/TableSchema

make[1]: Leaving directory

'/mnt/2GB_HD/ALAMON/Software/FileGDB_API_1_5_VS2015/FileGDB_API-64gcc/samples/TableSchema'

make -C TableSchemaXML clean

make[1]: Entering directory

'/mnt/2GB_HD/ALAMON/Software/FileGDB_API_1_5_VS2015/FileGDB_API-64gcc/samples/TableSchemaXML'

rm -f -v ./TableSchemaXML.o ../bin/TableSchemaXML

make[1]: Leaving directory

'/mnt/2GB_HD/ALAMON/Software/FileGDB_API_1_5_VS2015/FileGDB_API-64gcc/samples/TableSchemaXML'

make -C Domains

make[1]: Entering directory

'/mnt/2GB_HD/ALAMON/Software/FileGDB_API_1_5_VS2015/FileGDB_API-64gcc/samples/Domains'

g++ -fPIC -O3 -m64 -W -fexceptions -D_CONSOLE -DUNICODE -D_UNICODE -DUNIX

-D_REENTRANT -DFILEGDB_API -D__USE_FILE_OFFSET64 -DUNIX_FILEGDB_API

-D_FILE_OFFSET_BITS=64 -D_LARGEFILE64_SOURCE -I../../include -I. -c

Domains.cpp

g++ -fPIC -O3 -m64 -W -fexceptions -D_CONSOLE -DUNICODE -D_UNICODE -DUNIX

-D_REENTRANT -DFILEGDB_API -D__USE_FILE_OFFSET64 -DUNIX_FILEGDB_API

-D_FILE_OFFSET_BITS=64 -D_LARGEFILE64_SOURCE -I../../include -I. -m64

-L"../../lib" -o ../bin/Domains ./Domains.o -lFileGDBAPI

/usr/bin/ld: cannot find -lFileGDBAPI

collect2: error: ld returned 1 exit status

Makefile:31: recipe for target '../bin/Domains' failed

make[1]: *** Error 1

make[1]: Leaving directory

'/mnt/2GB_HD/ALAMON/Software/FileGDB_API_1_5_VS2015/FileGDB_API-64gcc/samples/Domains'

Makefile:27: recipe for target 'Domains' failed

make: *** Error 2

======================================

Building from samples/GeodatabaseManagement directory

GeodatabaseManagement$ make clean all

rm -f -v ./GeodatabaseManagement.o ../bin/GeodatabaseManagement

g++ -fPIC -O3 -m64 -W -fexceptions -D_CONSOLE -DUNICODE -D_UNICODE -DUNIX

-D_REENTRANT -DFILEGDB_API -D__USE_FILE_OFFSET64 -DUNIX_FILEGDB_API

-D_FILE_OFFSET_BITS=64 -D_LARGEFILE64_SOURCE -I../../include -I. -c

GeodatabaseManagement.cpp

g++ -fPIC -O3 -m64 -W -fexceptions -D_CONSOLE -DUNICODE -D_UNICODE -DUNIX

-D_REENTRANT -DFILEGDB_API -D__USE_FILE_OFFSET64 -DUNIX_FILEGDB_API

-D_FILE_OFFSET_BITS=64 -D_LARGEFILE64_SOURCE -I../../include -I. -m64

-L../../lib -o ../bin/GeodatabaseManagement ./GeodatabaseManagement.o

-lFileGDBAPI

/usr/bin/ld: cannot find -lFileGDBAPI

collect2: error: ld returned 1 exit status

Makefile:29: recipe for target '../bin/GeodatabaseManagement' failed

make: *** Error 1

LanceShipman
Esri Regular Contributor

Can you supply us with:

  1. The OS version/distribution (i.e. RHEL, SLES, Ubuntu, etc.) that you are using.
  2. Compiler and version (gcc --version)
  3. Full terminal session from a clean terminal showing how the environment was setup and full build output.
LeoRuss
Emerging Contributor

FileGDB_API-64gcc/samples/GeodatabaseManagement$ lsb_release -a

No LSB modules are available.

Distributor ID: Ubuntu

Description: Ubuntu 18.04.1 LTS

Release: 18.04

Codename: bionic

gcc -v

Using built-in specs.

COLLECT_GCC=gcc

COLLECT_LTO_WRAPPER=/usr/lib/gcc/x86_64-linux-gnu/7/lto-wrapper

OFFLOAD_TARGET_NAMES=nvptx-none

OFFLOAD_TARGET_DEFAULT=1

Target: x86_64-linux-gnu

Configured with: ../src/configure -v --with-pkgversion='Ubuntu

7.3.0-27ubuntu1~18.04'

--with-bugurl=file:///usr/share/doc/gcc-7/README.Bugs

--enable-languages=c,ada,c+,go,brig,d,fortran,objc,obj-c+ --prefix=/usr

--with-gcc-major-version-only --program-suffix=-7

--program-prefix=x86_64-linux-gnu- --enable-shared --enable-linker-build-id

--libexecdir=/usr/lib --without-included-gettext --enable-threads=posix

--libdir=/usr/lib --enable-nls --with-sysroot=/ --enable-clocale=gnu

--enable-libstdcxx-debug --enable-libstdcxx-time=yes

--with-default-libstdcxx-abi=new --enable-gnu-unique-object

--disable-vtable-verify --enable-libmpx --enable-plugin

--enable-default-pie --with-system-zlib --with-target-system-zlib

--enable-objc-gc=auto --enable-multiarch --disable-werror

--with-arch-32=i686 --with-abi=m64 --with-multilib-list=m32,m64,mx32

--enable-multilib --with-tune=generic --enable-offload-targets=nvptx-none

--without-cuda-driver --enable-checking=release --build=x86_64-linux-gnu

--host=x86_64-linux-gnu --target=x86_64-linux-gnu

Thread model: posix

gcc version 7.3.0 (Ubuntu 7.3.0-27ubuntu1~18.04)

g++ -v

Using built-in specs.

COLLECT_GCC=/usr/bin/g++-7

COLLECT_LTO_WRAPPER=/usr/lib/gcc/x86_64-linux-gnu/7/lto-wrapper

OFFLOAD_TARGET_NAMES=nvptx-none

OFFLOAD_TARGET_DEFAULT=1

Target: x86_64-linux-gnu

Configured with: ../src/configure -v --with-pkgversion='Ubuntu

7.3.0-27ubuntu1~18.04'

--with-bugurl=file:///usr/share/doc/gcc-7/README.Bugs

--enable-languages=c,ada,c+,go,brig,d,fortran,objc,obj-c+ --prefix=/usr

--with-gcc-major-version-only --program-suffix=-7

--program-prefix=x86_64-linux-gnu- --enable-shared --enable-linker-build-id

--libexecdir=/usr/lib --without-included-gettext --enable-threads=posix

--libdir=/usr/lib --enable-nls --with-sysroot=/ --enable-clocale=gnu

--enable-libstdcxx-debug --enable-libstdcxx-time=yes

--with-default-libstdcxx-abi=new --enable-gnu-unique-object

--disable-vtable-verify --enable-libmpx --enable-plugin

--enable-default-pie --with-system-zlib --with-target-system-zlib

--enable-objc-gc=auto --enable-multiarch --disable-werror

--with-arch-32=i686 --with-abi=m64 --with-multilib-list=m32,m64,mx32

--enable-multilib --with-tune=generic --enable-offload-targets=nvptx-none

--without-cuda-driver --enable-checking=release --build=x86_64-linux-gnu

--host=x86_64-linux-gnu --target=x86_64-linux-gnu

Thread model: posix

gcc version 7.3.0 (Ubuntu 7.3.0-27ubuntu1~18.04)

==========================

Terminal settings/output:

LeoRuss
Emerging Contributor

Apparently, there is message size limit so Terminal settings/output: part got truncated. Here it comes:

FileGDB_API-64gcc/lib$ export LD_LIBRARY_PATH=${PWD}:${LD_LIBRARY_PATH}
FileGDB_API-64gcc/lib$ cd ../samples


FileGDB_API-64gcc/samples$ make clean all
make -C Display clean
make[1]: Entering directory '/mnt/2GB_HD/ALAMON/Software/FileGDB_API_1_5_VS2015/FileGDB_API-64gcc/samples/Display'
rm -f -v ./Display.o ../bin/Display
make[1]: Leaving directory '/mnt/2GB_HD/ALAMON/Software/FileGDB_API_1_5_VS2015/FileGDB_API-64gcc/samples/Display'
make -C Domains clean
make[1]: Entering directory '/mnt/2GB_HD/ALAMON/Software/FileGDB_API_1_5_VS2015/FileGDB_API-64gcc/samples/Domains'
rm -f -v ./Domains.o ../bin/Domains
removed './Domains.o'
make[1]: Leaving directory '/mnt/2GB_HD/ALAMON/Software/FileGDB_API_1_5_VS2015/FileGDB_API-64gcc/samples/Domains'
make -C Editing clean
make[1]: Entering directory '/mnt/2GB_HD/ALAMON/Software/FileGDB_API_1_5_VS2015/FileGDB_API-64gcc/samples/Editing'
rm -f -v ./Editing.o ../bin/Editing
make[1]: Leaving directory '/mnt/2GB_HD/ALAMON/Software/FileGDB_API_1_5_VS2015/FileGDB_API-64gcc/samples/Editing'
make -C ExecutingSQL clean
make[1]: Entering directory '/mnt/2GB_HD/ALAMON/Software/FileGDB_API_1_5_VS2015/FileGDB_API-64gcc/samples/ExecutingSQL'
rm -f -v ./ExecutingSQL.o ../bin/ExecutingSQL
make[1]: Leaving directory '/mnt/2GB_HD/ALAMON/Software/FileGDB_API_1_5_VS2015/FileGDB_API-64gcc/samples/ExecutingSQL'
make -C FeatureDatasets clean
make[1]: Entering directory '/mnt/2GB_HD/ALAMON/Software/FileGDB_API_1_5_VS2015/FileGDB_API-64gcc/samples/FeatureDatasets'
rm -f -v ./FeatureDatasets.o ../bin/FeatureDatasets
make[1]: Leaving directory '/mnt/2GB_HD/ALAMON/Software/FileGDB_API_1_5_VS2015/FileGDB_API-64gcc/samples/FeatureDatasets'
make -C GeodatabaseManagement clean
make[1]: Entering directory '/mnt/2GB_HD/ALAMON/Software/FileGDB_API_1_5_VS2015/FileGDB_API-64gcc/samples/GeodatabaseManagement'
rm -f -v ./GeodatabaseManagement.o ../bin/GeodatabaseManagement
make[1]: Leaving directory '/mnt/2GB_HD/ALAMON/Software/FileGDB_API_1_5_VS2015/FileGDB_API-64gcc/samples/GeodatabaseManagement'
make -C Querying clean
make[1]: Entering directory '/mnt/2GB_HD/ALAMON/Software/FileGDB_API_1_5_VS2015/FileGDB_API-64gcc/samples/Querying'
rm -f -v ./Querying.o ../bin/Querying
make[1]: Leaving directory '/mnt/2GB_HD/ALAMON/Software/FileGDB_API_1_5_VS2015/FileGDB_API-64gcc/samples/Querying'
make -C ShapeBuffer clean
make[1]: Entering directory '/mnt/2GB_HD/ALAMON/Software/FileGDB_API_1_5_VS2015/FileGDB_API-64gcc/samples/ShapeBuffer'
rm -f -v ./ShapeBuffer.o ../bin/ShapeBuffer
make[1]: Leaving directory '/mnt/2GB_HD/ALAMON/Software/FileGDB_API_1_5_VS2015/FileGDB_API-64gcc/samples/ShapeBuffer'
make -C TableSchema clean
make[1]: Entering directory '/mnt/2GB_HD/ALAMON/Software/FileGDB_API_1_5_VS2015/FileGDB_API-64gcc/samples/TableSchema'
rm -f -v ./TableSchema.o ../bin/TableSchema
make[1]: Leaving directory '/mnt/2GB_HD/ALAMON/Software/FileGDB_API_1_5_VS2015/FileGDB_API-64gcc/samples/TableSchema'
make -C TableSchemaXML clean
make[1]: Entering directory '/mnt/2GB_HD/ALAMON/Software/FileGDB_API_1_5_VS2015/FileGDB_API-64gcc/samples/TableSchemaXML'
rm -f -v ./TableSchemaXML.o ../bin/TableSchemaXML
make[1]: Leaving directory '/mnt/2GB_HD/ALAMON/Software/FileGDB_API_1_5_VS2015/FileGDB_API-64gcc/samples/TableSchemaXML'
make -C Domains
make[1]: Entering directory '/mnt/2GB_HD/ALAMON/Software/FileGDB_API_1_5_VS2015/FileGDB_API-64gcc/samples/Domains'
g++ -fPIC -O3 -m64 -W -fexceptions -D_CONSOLE -DUNICODE -D_UNICODE -DUNIX -D_REENTRANT -DFILEGDB_API -D__USE_FILE_OFFSET64 -DUNIX_FILEGDB_API -D_FILE_OFFSET_BITS=64 -D_LARGEFILE64_SOURCE -I../../include -I. -c Domains.cpp
g++ -fPIC -O3 -m64 -W -fexceptions -D_CONSOLE -DUNICODE -D_UNICODE -DUNIX -D_REENTRANT -DFILEGDB_API -D__USE_FILE_OFFSET64 -DUNIX_FILEGDB_API -D_FILE_OFFSET_BITS=64 -D_LARGEFILE64_SOURCE -I../../include -I. -m64 -L"../../lib" -o ../bin/Domains ./Domains.o -lFileGDBAPI
/usr/bin/ld: cannot find -lFileGDBAPI
collect2: error: ld returned 1 exit status
Makefile:31: recipe for target '../bin/Domains' failed
make[1]: *** [../bin/Domains] Error 1
make[1]: Leaving directory '/mnt/2GB_HD/ALAMON/Software/FileGDB_API_1_5_VS2015/FileGDB_API-64gcc/samples/Domains'
Makefile:27: recipe for target 'Domains' failed
make: *** [Domains] Error 2

LanceShipman
Esri Regular Contributor

It looks like you are using the MacOS version of the API. Use: 

    https://github.com/Esri/file-geodatabase-api/blob/master/FileGDB_API_1.5/FileGDB_API_1_5_64gcc51.tar...

 

We need to go to better names at 1.6.

LeoRuss
Emerging Contributor

Great, it did build!

I am also looking at runtime samples, I have GIS Runtime Server installed

but I can't find any instructions on how to run/use it.

The GeodatabaseSyncTask syncTask = new

GeodatabaseSyncTask(featureServiceURL);

call in GenerateGeodatabaseSample class

(com.esri.samples.featurelayers.generate_geodatabase package) requires

String featureServiceURL parameter.

I can assume this is the URL of something running/residing on that runtime

server but I can't find any details on how to use it.

Again, thank you for your help!

StevePeaslee1
Emerging Contributor

Lance, has anyone developed a Python wrapper for ESRI's FileGDBAPI.dll?

I've experimented with the open source version of FileGDB dll available through the OGR library in Python and was able to successfully read and export object metadata in XML format from the GDB_Items table.

However I also need to be able to write metadata changes back to the GDB_Items table which requires the ESRI version of the DLL.

DonnyVelazquez
Frequent Contributor

So its been 6 years since the last update. I'm assuming File Geodatabase API has been abandoned. 

AJR
by
Frequent Contributor

There is a build on github for VS2019, but that seems to be the latest.  Is there a plan for when the VS2022 build will be released?

https://github.com/Esri/file-geodatabase-api/tree/master/FileGDB_API_1.5.2

About the Author
Esri for 31+ years. Product Engineer for File Geodatabase, SQLite, Shapefiles