OSGeo / libgeotiff

Official repository of the libgeotiff project
183 stars 70 forks source link

Unable to configure using PROJ 9.0.0 #75

Closed serbinsh closed 4 months ago

serbinsh commented 2 years ago

I am attempting to build from source on RHEL 8.5, linking to my compiled version of libtiff (4.3) and PROJ (9.0.0). However, when I try to configure the installer using --with-proj pointing to my version of PROJ 9, I am getting the error:

./configure --prefix=/data/software/geotiff/1.7.1-gcc850 --with-proj=/data/software/proj/9.0.0 --with-libtiff=/data/software/libtiff/4.3.0 --with-zlib --with-jpeg

the error

checking for PROJ >= 6 library... checking for proj_create_from_wkt in -lproj... no
checking for proj_create_from_wkt in -lproj... no
checking for internal_proj_create_from_wkt in -lproj... no
checking for internal_proj_create_from_wkt in -lproj... no
checking for internal_proj_create_from_wkt in -linternalproj... no
checking for internal_proj_create_from_wkt in -linternalproj... (cached) no
configure: error: PROJ 6 symbols not found

But if I link to an older PROJ, 7.0.0

./configure --prefix=/data/software/geotiff/1.7.1-gcc850 --with-proj=/data/software/proj/7.0.0 --with-libtiff=/data/software/libtiff/4.3.0 --with-zlib --with-jpeg

it configures fine

libgeotiff configuration summary:

  Version..................: 1.7.1
  Installation directory...: /data/software/geotiff/1.7.1-gcc850
  C compiler...............: gcc -g -O2 -O3 -DNDEBUG
  Debugging support........:

  zlib support......: yes
  jpeg support......: yes
  TIFF support......: yes
    -INCLUDE .......: -I/data/software/libtiff/4.3.0/include
    -PREFIX ........:
  PROJ support......: yes
    -INCLUDE .......:  -I/data/software/proj/7.0.0/include
  LIBS.....................: -L/data/software/proj/7.0.0/lib -lproj -L/data/software/libtiff/4.3.0/lib -ltiff -ljpeg -lz -lm

  libgeotiff - http://trac.osgeo.org/geotiff

I am not really sure what might be causing the error in this case. Any help would be appreciated! Thanks

rouault commented 2 years ago

What about if you try the CMake build system of libgeotiff ? You mentioned in the first revision of your issue lib64 vs lib: this might well be the cause because libgeotiff configure.ac will only look for libproj in the 'lib' subdirectory. I presume libproj gets installed in lib64 on RHEL with PROJ CMake build system

serbinsh commented 2 years ago

Something like this

mkdir build_cmake
cd build_cmake
cmake .. -DCMAKE_C_COMPILER_LAUNCHER=ccache DCMAKE_C_FLAGS="-Wall -Wextra -Werror"
make -j3 

but where I define the location of sqlite and libtiff?

serbinsh commented 2 years ago

I was able to make configure and make with cmake using PROJ9.0.0 and libtiff4.3.0

cmake -DCMAKE_INSTALL_PREFIX=/data/software/geotiff/1.7.1-gcc850 \
-DPROJ_LIBRARY=/data/software/proj/9.0.0 -DPROJ_INCLUDE_DIR=/data/software/proj/9.0.0/include ..

But when I test the binary i get another strange issue, which I think is a PROJ/libtiff 4.3.0 issue

[sserbin@modex bin]$ ./listgeo
./listgeo: /data/software/libtiff/4.3.0/lib/libtiff.so.5: no version information available (required by ./listgeo)
./listgeo: /data/software/libtiff/4.3.0/lib/libtiff.so.5: no version information available (required by /data/software/proj/9.0.0/lib64/libproj.so.25)
Usage: listgeo [-d] [-tfw] [-proj4] [-no_norm] [-t tabledir] filename

  -d: report lat/long corners in decimal degrees instead of DMS.
  -tfw: Generate a .tfw (ESRI TIFF World) file for the target file.
  -proj4: Report PROJ.4 equivalent projection definition.
  -no_norm: Don't report 'normalized' parameter values.
  filename: Name of the GeoTIFF file to report on.