Having built GDAL 3.7.0, I'm observing the following output.

# output of ldd shows the issue

ldd libgdal.so
        linux-vdso.so.1 (0x00007ffe0e3f7000)
        libdl.so.2 => /lib64/libdl.so.2
(0x00007feaca6a6000)
        libcurl.so.4 => /lib64/libcurl.so.4
(0x00007feaca417000)
        libproj.so.22 => not found
        libexpat.so.1 =>
/lib64/libexpat.so.1 (0x00007feaca1db000)
        libxerces-c-3.1.so => not found
        /data/third_party_unzip/exp/SQLite/SQLite-3.23.1/lib/libsqlite3.so
=> not found

Notice that the only absolute path is for sqlite3.  I had to specify the full 
path to all dependencies but only the full path to sqlite is embedded into the 
.so file. This is a major problem since now GDAL will not load at run-time 
unless libsqlite exists on the system at that exact location. I'm supplying 
absolute paths to the location of all dependencies in the cmake command to 
generate the build directory. Does anyone know why sqlite would be linked 
differently? So far I'm searching through the build directory for references 
but I haven't found a reason or the behavior yet.  The build instructions at 
gdal.org seem straightforward so I don't see anything on that site that 
explains the behavior.  I'm guessing it relates to how the build files are 
generated by the gdal build system. I don't want the absolute path to anything 
baked into libgdal.so.

My Cmake command to generate the build looks like this, and I'm also putting 
path to all dependencies into LD_LIBRARY_PATH first. I didn't think it would 
help to show all of the paths since they'd be different on other Linux systems. 
 Bases on this I'm failing to understand why the dependencies are not linked in 
consistently.  I'm building GDAL using powershell commands.

$Env:LD_LIBRARY_PATH="${CURL_LIB_DIR}:${SQLITE_LIB_DIR}:${EXPAT_LIB_DIR}:${PROJ_LIB_DIR}:${XERCES_LIB_DIR}:${OPENSSL_LIB_DIR}:${Env:LD_LIBRARY_PATH}"

cmake -S . -B ../build/$CONFIGL -DCMAKE_INSTALL_PREFIX="../install/$CONFIGL" 
-DCMAKE_BUILD_TYPE="$CONFIG" `
  -DGDAL_USE_OPENSSL=OFF -DGDAL_USE_EXTERNAL_LIBS:BOOL=OFF `
  -DOPENSSL_ROOT_DIR="$OPENSSL_ROOT_DIR" `
  -DPROJ_INCLUDE_DIR="$PROJ_INCLUDE" -DPROJ_LIBRARY_RELEASE="$PROJ_LIB" `
  -DGDAL_USE_CURL=ON -DCURL_INCLUDE_DIR="$CURL_INCLUDE" 
-DCURL_LIBRARY_RELEASE="$CURL_LIB" `
  -DGDAL_USE_XERCESC=ON -DXercesC_INCLUDE_DIR="$XERCES_INCLUDE" 
-DXercesC_LIBRARY="$XERCES_LIB" `
  -DGDAL_USE_EXPAT=ON -DEXPAT_INCLUDE_DIR="$EXPAT_INCLUDE" 
-DEXPAT_LIBRARY="$EXPAT_LIB" `
  -DGDAL_USE_SQLITE3=ON -DSQLite3_INCLUDE_DIR="$SQLITE_INCLUDE" 
-DSQLite3_LIBRARY="$SQLITE_LIB" `
  -DACCEPT_MISSING_SQLITE3_MUTEX_ALLOC:BOOL=ON 
-DACCEPT_MISSING_SQLITE3_RTREE:BOOL=ON `
  2>&1 | tee cmake_configure_${PLATFORM}_${TOOLSET}_${CONFIGL}.txt

Thanks,

Shawn Fox
Sr Principal SW Engineer
BAE Systems, Inc.
Geospatial eXploitation Products
T: 858-592-5310 office phone number | M: 858-337-2380 | E: 
shawn....@baesystems.com
10920 Technology Pl, San Diego, CA

_______________________________________________
gdal-dev mailing list
gdal-dev@lists.osgeo.org
https://lists.osgeo.org/mailman/listinfo/gdal-dev

Reply via email to