Opened 7 years ago

Closed 6 years ago

Last modified 4 years ago

#2065 closed defect (fixed)

grass70 not detecting latest source build of libLAS (1.7.0)

Reported by: rashadkm Owned by: grass-dev@…
Priority: normal Milestone: 7.0.0
Component: Compiling Version: svn-trunk
Keywords: liblas Cc: epifanio
CPU: All Platform: Linux

Description

when compiling grass70 from source using the config below with libLAS enabled. I am getting an error

./configure --with-freetype-includes=/usr/include/freetype2 --with-postgres-includes=/usr/pgsql-9.2/include/ --with-postgres --with-readline --with-nls --with-blas --with-lapack --with-wxwidgets --with-sqlite --with-geos --with-mysql-includes=/usr/include/mysql --with-mysql --with-netcdf --with-liblas=/home/rashad/local/bin/liblas-config --with-freetype

Config output:

checking host system type... x86_64-unknown-linux-gnu
checking for gcc... gcc
checking whether the C compiler (gcc -Wall -g ) works... yes
checking whether the C compiler (gcc -Wall -g ) is a cross-compiler... no
checking whether we are using GNU C... yes
checking whether gcc accepts -g... yes
checking for Cygwin environment... no
checking for mingw32 environment... no
checking for executable suffix... no
checking for full floating-point support... yes
checking for pwd... /usr/bin/pwd
checking for source directory... /home/rashad/repos/grass/grass70
checking for build directory... /home/rashad/repos/grass/grass70
checking for svnversion... /usr/bin/svnversion
checking for MacOSX App... no
checking for MacOSX architectures... no
checking for MacOSX SDK... no
checking how to build libraries... shared
checking for additional include dirs... 
checking for additional library dirs... 
checking for a BSD compatible install... /usr/bin/install -c
checking for flex... flex
checking for yywrap in -lfl... no
checking for bison... bison -y
checking for ranlib... ranlib
checking for ar... ar
checking for env... env
checking for perl... /usr/bin/perl
checking how to run the C preprocessor... gcc -E
checking for ANSI C header files... yes
checking for limits.h... yes
checking for termio.h... yes
checking for termios.h... yes
checking for unistd.h... yes
checking for values.h... yes
checking for f2c.h... no
checking for g2c.h... no
checking for sys/ioctl.h... yes
checking for sys/mtio.h... yes
checking for sys/resource.h... yes
checking for sys/time.h... yes
checking for sys/timeb.h... yes
checking for sys/types.h... yes
checking for sys/utsname.h... yes
checking for libintl.h... yes
checking for iconv.h... yes
checking for langinfo.h... yes
checking whether time.h and sys/time.h may both be included... yes
checking for off_t... yes
checking for uid_t in sys/types.h... yes
checking return type of signal handlers... void
checking for Cygwin environment... no
checking for ftime... yes
checking for gethostname... yes
checking for gettimeofday... yes
checking for lseek... yes
checking for nice... yes
checking for time... yes
checking for uname... yes
checking for seteuid... yes
checking for setpriority... yes
checking for setreuid... yes
checking for setruid... no
checking for drand48... yes
checking for putenv... yes
checking for setenv... yes
checking for nanosleep... yes
checking whether setpgrp takes no argument... yes
checking for long long int... yes
checking for W11... no
checking for X... libraries , headers 
checking for dnet_ntoa in -ldnet... no
checking for dnet_ntoa in -ldnet_stub... no
checking for gethostbyname... yes
checking for connect... yes
checking for remove... yes
checking for shmat... yes
checking for IceConnectionNumber in -lICE... yes
checking for library containing cuserid... none required
checking for asprintf... yes
checking for atan... no
checking for atan in -lm... yes
checking for dlsym... no
checking for dlsym in -ldl... yes
checking for iconv... yes
checking for socket... yes
checking for location of zlib includes... 
checking for zlib.h... yes
checking for location of zlib library... 
checking for deflate in -lz... yes
checking for location of External PROJ.4 includes... 
checking for proj_api.h... yes
checking External PROJ.4 version... 480
checking for location of External PROJ.4 library... 
checking for pj_get_def in -lproj... yes
checking for location of External PROJ.4 data files... 
configure: warning: *** External PROJ.4 directory not specified; default will be used
checking for /usr/local/share/proj/epsg... no
configure: warning: *** Unable to locate PROJ data files.
checking for nad2bin... /usr/bin/nad2bin
checking whether to use regex... yes
checking for location of regex includes... 
checking for regex.h... yes
checking for location of regex library... 
checking for regcomp... yes
checking whether to use Readline... yes
checking for location of Readline includes... 
checking for readline/readline.h... yes
checking for readline/history.h... yes
checking for location of Readline library... 
checking for readline in -lreadline... yes
checking for add_history in -lhistory... yes
checking whether to use GDAL... yes
checking for gdal-config... /usr/bin/gdal-config
checking whether to use libLAS... yes
checking for liblas-config... /home/rashad/local/bin/liblas-config
configure: error: *** Unable to locate libLAS library.

I had downloaded libLAS from [1] and installed in ~/local and liblas-config exists here ~/local/bin/liblas-config. but grass configure always fails. Below is the output from config.log

configure:6088: checking for gdal-config
configure:6150: gcc -o conftest -Wall -g  -I/usr/include/gdal   -Wl,--export-dynamic conftest.c  -L/usr/lib64 -lgdal 1>&5
configure: In function 'main':
configure:6146:9: warning: ignoring return value of 'GDALOpen', declared with attribute warn_unused_result [-Wunused-result]
configure:6198: checking whether to use libLAS
configure:6215: checking for liblas-config
configure:6270: gcc -o conftest -Wall -g  -pedantic -ansi -Wall -Wpointer-arith -Wcast-align -Wcast-qual -Wfloat-equal -Wredundant-decls -Wno-long-long -std=c++98   -Wl,--export-dynamic conftest.c  -L/home/rashad/local/lib -llas -llas_c -L/usr/lib64 /usr/lib64/libboost_program_options-mt.so /usr/lib64/libboost_thread-mt.so 1>&5
cc1: warning: command line option '-std=c++98' is valid for C++/ObjC++ but not for C [enabled by default]
configure:6264:32: fatal error: liblas/capi/liblas.h: No such file or directory
compilation terminated.
configure: failed program was:
#line 6263 "configure"
#include "confdefs.h"
#include <liblas/capi/liblas.h>
int main() {
LASReader_Create("foo");
; return 0; }
configure:6285: gcc -o conftest -Wall -g  -pedantic -ansi -Wall -Wpointer-arith -Wcast-align -Wcast-qual -Wfloat-equal -Wredundant-decls -Wno-long-long -std=c++98   -Wl,--export-dynamic conftest.c  -L/home/rashad/local/lib -llas -llas_c -L/usr/lib64 /usr/lib64/libboost_program_options-mt.so /usr/lib64/libboost_thread-mt.so 1>&5
cc1: warning: command line option '-std=c++98' is valid for C++/ObjC++ but not for C [enabled by default]
configure:6279:32: fatal error: liblas/capi/liblas.h: No such file or directory
compilation terminated.
configure: failed program was:
#line 6278 "configure"
#include "confdefs.h"
#include <liblas/capi/liblas.h>
int main() {
LASReader_Create("foo");
; return 0; }

liblas-config --includes gives this ~/local/include

Adding the LIBLAS_INC to CFLAGS solved this

please find attached patch. I modified the configure script. But I think there is a better way to do this

[1] http://download.osgeo.org/liblas/libLAS-1.7.0.tar.gz

Attachments (1)

external_liblas_include_ignored.diff (409 bytes) - added by rashadkm 7 years ago.

Download all attachments as: .zip

Change History (16)

Changed 7 years ago by rashadkm

comment:1 in reply to:  description Changed 7 years ago by glynn

Replying to rashadkm:

when compiling grass70 from source using the config below with libLAS enabled. I am getting an error

Try r57541.

comment:2 Changed 6 years ago by neteler

Resolution: fixed
Status: newclosed

Solved, closing.

comment:3 Changed 6 years ago by hamish

currently I'm getting this error with trunk on Debian Wheezy,

./configure ... --with-liblas
[...]
checking whether to use libLAS... yes
checking for liblas-config... /usr/bin/liblas-config
configure: error: *** Unable to locate libLAS library.
$ /usr/bin/liblas-config --cflags
-Wall -Wno-long-long -pedantic -g -O2 -fstack-protector --param=ssp-buffer-size=4 -Wformat -Wformat-security -Werror=format-security -Wall -O3 -DNDEBUG
$ /usr/bin/liblas-config --includes
-I/usr/include/geotiff -I/usr/include/gdal

config.log:

configure:6215: checking for liblas-config
configure:6272: gcc -o conftest -ggdb -march=amdfam10 -Wall -Werror-implicit-function-declaration -fno-common
 -Wextra -Wunused  -Wall -Wno-long-long -pedantic -g -O2 -fstack-protector --param=ssp-buffer-size=4 -Wformat
 -Wformat-security -Werror=format-security -Wall -O3 -DNDEBUG  -I/usr/include/geotiff -I/usr/include/gdal  -W
l,--export-dynamic conftest.c  -L/usr/lib -lgeotiff -L/usr/lib -lgdal 1>&5
/tmp/ccrOhqrK.o: In function `main':
/home/hamish/src/grass/svn/trunk/configure:6268: undefined reference to `LASReader_Create'
collect2: error: ld returned 1 exit status
configure: failed program was:
#line 6265 "configure"
#include "confdefs.h"
#include <liblas/capi/liblas.h>
int main() {
LASReader_Create("foo");
; return 0; }
configure:6287: gcc -o conftest -ggdb -march=amdfam10 -Wall -Werror-implicit-function-declaration -fno-common
 -Wextra -Wunused  -Wall -Wno-long-long -pedantic -g -O2 -fstack-protector --param=ssp-buffer-size=4 -Wformat
 -Wformat-security -Werror=format-security -Wall -O3 -DNDEBUG  -I/usr/include/geotiff -I/usr/include/gdal  -W
l,--export-dynamic conftest.c  -L/usr/lib -lgeotiff -L/usr/lib -lgdal 1>&5
/tmp/cc85WCPw.o: In function `main':
/home/hamish/src/grass/svn/trunk/configure:6283: undefined reference to `LASReader_Create'
collect2: error: ld returned 1 exit status
configure: failed program was:
#line 6280 "configure"
#include "confdefs.h"
#include <liblas/capi/liblas.h>
int main() {
LASReader_Create("foo");
; return 0; }
$ grep -r LASReader_Create /usr/include/liblas *
/usr/include/liblas/capi/liblas.h:LAS_DLL LASReaderH LASReader_Create(const char * filename);

$ apt-cache policy liblas-dev 
liblas-dev:
  Installed: 1.2.1-5+b1
...

any ideas?

thanks, Hamish

comment:4 in reply to:  3 ; Changed 6 years ago by lucadelu

Replying to hamish:

currently I'm getting this error with trunk on Debian Wheezy,

$ apt-cache policy liblas-dev liblas-dev:

Installed: 1.2.1-5+b1

... }}}

any ideas?

I think liblas version is very old, try with newer one.

thanks, Hamish

Best Luca

comment:5 in reply to:  4 Changed 6 years ago by hamish

Replying to lucadelu:

I think liblas version is very old, try with newer one.

It's the stock version for Debian/Stable? (Wheezy) and Ubuntu 12.04 LTS & so should reasonably be supported. ISTR Howard saying there was an old version which would do well to be flushed out of the system. Was it 1.2 or earlier?

If there is a fundamental reason to make 1.7 or newer required, then REQUIREMENTS.html should note that. But I'm not sure there is & wrt this ticket the fn in question does exist in the 1.2 header.

regards, Hamish

comment:6 Changed 5 years ago by epifanio

Cc: epifanio added
Milestone: 7.0.07.1.0

Exact same problem building grass 7.1-svn on debian sid (liblas 1.8)

comment:7 Changed 5 years ago by morenocomelli

Same problem building grass 7.0.0 on CentOS 7.

liblas 1.8 is installed via yum

comment:8 in reply to:  7 Changed 5 years ago by neteler

Replying to morenocomelli:

Same problem building grass 7.0.0 on CentOS 7.

liblas 1.8 is installed via yum

Please check "config.log" for the true error. Maybe liblas-devel is not installed?

comment:9 Changed 5 years ago by jmburgos

Same problem bulding grass 7.0.0. On CentOS 7, with liblas-1.8.0-3.el7.x86_64 and liblas-devel-1.8.0-3.el7.x86_64 already installed.

comment:10 in reply to:  9 ; Changed 5 years ago by wenzeslaus

Replying to jmburgos:

Same problem bulding grass 7.0.0. On CentOS 7, with liblas-1.8.0-3.el7.x86_64 and liblas-devel-1.8.0-3.el7.x86_64 already installed.

Please be more specific and provide the error messages and logs. Also please report what running liblas-config with various parameters gives you. I don't know what to check in the source code since I can't reproduce the issue myself. Several people reported "same problem" but the ticket contains two different issues. One with includes (that's the file not found or dir doesn't exist error), one with linking libraries (that's the undefined reference...collect2: error: ld one).

Good thing to try would be to make a Dockerfile which can be shared and fixed. See e.g. https://github.com/wenzeslaus/grass-gis-docker.

comment:11 in reply to:  10 Changed 5 years ago by jmburgos

Replying to wenzeslaus:

Please be more specific and provide the error messages and logs.

I get an "configure: error: * Unable to locate libLAS library" error.

This is the relevant bit from the config.log file:

configure:6164: checking whether to use libLAS
configure:6181: checking for liblas-config
configure:6238: gcc -o conftest -g -O2  -O2 -g -pipe -Wall -Wp,-D_FORTIFY_SOURCE=2 -fexceptions -fstack-protector-strong --param=ssp-buffer-size=4 -grecord-gcc-switches -m64 -mtune=generic  -I/usr/include -I/usr/include/gdal -I/usr/include/libgeotiff -I/usr/include -I/usr/include  -Wl,--export-dynamic conftest.c  -L/usr/lib -llas -llas_c -L/usr/lib64 /usr/lib64/libboost_program_options-mt.so /usr/lib64/libboost_thread-mt.so /usr/lib64/libgdal.so /usr/lib64/libgeotiff.so /usr/lib64/libtiff.so /usr/lib64/liblaszip.so 1>&5
gcc: error: /usr/lib64/libgeotiff.so: No such file or directory
gcc: error: /usr/lib64/liblaszip.so: No such file or directory
configure: failed program was:
#line 6231 "configure"
#include "confdefs.h"
#include <liblas/capi/liblas.h>
int main() {
LASReader_Create("foo");
; return 0; }
configure:6253: gcc -o conftest -g -O2  -O2 -g -pipe -Wall -Wp,-D_FORTIFY_SOURCE=2 -fexceptions -fstack-protector-strong --param=ssp-buffer-size=4 -grecord-gcc-switches -m64 -mtune=generic  -I/usr/include -I/usr/include/gdal -I/usr/include/libgeotiff -I/usr/include -I/usr/include  -Wl,--export-dynamic conftest.c  -L/usr/lib -llas -llas_c -L/usr/lib64 /usr/lib64/libboost_program_options-mt.so /usr/lib64/libboost_thread-mt.so /usr/lib64/libgdal.so /usr/lib64/libgeotiff.so /usr/lib64/libtiff.so /usr/lib64/liblaszip.so 1>&5
gcc: error: /usr/lib64/libgeotiff.so: No such file or directory
gcc: error: /usr/lib64/liblaszip.so: No such file or directory
configure: failed program was:
#line 6246 "configure"
#include "confdefs.h"
#include <liblas/capi/liblas.h>
int main() {
LASReader_Create("foo");
; return 0; }

So it seems that it cannot find the libgeotiff.so and liblaszip.so files. But I have the libgeotiff-1.2.5-14.el7.x86_64 and laszip-2.2.0-4.el7.x86_64 packages installed (as well as liblas-1.8.0-3.el7.x86_64 and liblas-devel-1.8.0-3.el7.x86_64).

Last edited 5 years ago by neteler (previous) (diff)

comment:12 Changed 5 years ago by neteler

Please report the output of

ls -la /usr/lib64/libgeotiff*
ls -la /usr/lib64/liblaszip*

I am sure that the .so names reported by liblas-config do not correspond to the actual files/links.

For me I solved it by creating the missing links but indeed the liblas RPM SPEC file needs a fix.

comment:13 Changed 5 years ago by jmburgos

That was my mistake. Some libraries were missing from my computer, namely atlas, laszip-devel, and libgeotiff-devel. With these installed, everything ran smoothly.

Last edited 5 years ago by jmburgos (previous) (diff)

comment:14 Changed 4 years ago by neteler

Milestone: 7.1.07.2.0

Milestone renamed

comment:15 Changed 4 years ago by neteler

Milestone: 7.2.07.0.0
Note: See TracTickets for help on using tickets.