[Kwiver-users] Can't build fletch with python support - GDAL link error

John McKendry john.mckendry at gmail.com
Wed Jul 31 14:33:58 EDT 2019


fletch GDAL link problem with curl_openssl
Ubuntu 18.04.2 64-bit, gcc 7.4.0
I have previously built fletch and kwiver uneventfully with
-Dfletch_ENABLE_ALL_PACKAGES.
i tried to rebuild fletch adding -Dfletch_BUILD_WITH_PYTHON and I get
errors trying to build GDAL. The whole log file is 48 pages, so I
won't paste it here. This is the error section:
[ 71%] Built target openjpeg
[ 73%] Performing build step for 'GDAL'
/home/jfm/fletch/build/build/src/GDAL/.libs/libgdal.so: undefined
reference to `curl_easy_getinfo at CURL_OPENSSL_4'
/home/jfm/fletch/build/build/src/GDAL/.libs/libgdal.so: undefined
reference to `curl_multi_perform at CURL_OPENSSL_4'
/home/jfm/fletch/build/build/src/GDAL/.libs/libgdal.so: undefined
reference to `curl_multi_cleanup at CURL_OPENSSL_4'
/home/jfm/fletch/build/build/src/GDAL/.libs/libgdal.so: undefined
reference to `curl_multi_info_read at CURL_OPENSSL_4'
/home/jfm/fletch/build/build/src/GDAL/.libs/libgdal.so: undefined
reference to `curl_easy_perform at CURL_OPENSSL_4'
/home/jfm/fletch/build/build/src/GDAL/.libs/libgdal.so: undefined
reference to `curl_slist_free_all at CURL_OPENSSL_4'
/home/jfm/fletch/build/build/src/GDAL/.libs/libgdal.so: undefined
reference to `curl_easy_setopt at CURL_OPENSSL_4'
/home/jfm/fletch/build/build/src/GDAL/.libs/libgdal.so: undefined
reference to `curl_easy_init at CURL_OPENSSL_4'
/home/jfm/fletch/build/build/src/GDAL/.libs/libgdal.so: undefined
reference to `curl_multi_fdset at CURL_OPENSSL_4'
/home/jfm/fletch/build/build/src/GDAL/.libs/libgdal.so: undefined
reference to `curl_slist_append at CURL_OPENSSL_4'
/home/jfm/fletch/build/build/src/GDAL/.libs/libgdal.so: undefined
reference to `curl_multi_add_handle at CURL_OPENSSL_4'
/home/jfm/fletch/build/build/src/GDAL/.libs/libgdal.so: undefined
reference to `curl_version at CURL_OPENSSL_4'
/home/jfm/fletch/build/build/src/GDAL/.libs/libgdal.so: undefined
reference to `curl_multi_remove_handle at CURL_OPENSSL_4'
/home/jfm/fletch/build/build/src/GDAL/.libs/libgdal.so: undefined
reference to `curl_multi_setopt at CURL_OPENSSL_4'
/home/jfm/fletch/build/build/src/GDAL/.libs/libgdal.so: undefined
reference to `curl_easy_cleanup at CURL_OPENSSL_4'
/home/jfm/fletch/build/build/src/GDAL/.libs/libgdal.so: undefined
reference to `curl_multi_init at CURL_OPENSSL_4'
/home/jfm/fletch/build/build/src/GDAL/.libs/libgdal.so: undefined
reference to `curl_version_info at CURL_OPENSSL_4'
/home/jfm/fletch/build/build/src/GDAL/.libs/libgdal.so: undefined
reference to `curl_multi_wait at CURL_OPENSSL_4'
collect2: error: ld returned 1 exit status
# in build/build/src/GDAL/apps/
GNUmakefile:82: recipe for target 'gdalinfo' failed
make[4]: *** [gdalinfo] Error 1
# in build/build/src/GDAL/
GNUmakefile:105: recipe for target 'apps-target' failed
make[3]: *** [apps-target] Error 2
CMakeFiles/GDAL.dir/build.make:120: recipe for target
'build/src/GDAL-stamp/GDAL-build' failed
make[2]: *** [build/src/GDAL-stamp/GDAL-build] Error 2
CMakeFiles/Makefile2:1627: recipe for target 'CMakeFiles/GDAL.dir/all' failed
make[1]: *** [CMakeFiles/GDAL.dir/all] Error 2
Makefile:129: recipe for target 'all' failed
make: *** [all] Error 2

nm /home/jfm/fletch/build/build/src/GDAL/.libs/libgdal.so |grep curl
                 U curl_easy_cleanup@@CURL_OPENSSL_4
                 U curl_easy_getinfo@@CURL_OPENSSL_4
                 U curl_easy_init@@CURL_OPENSSL_4
                 U curl_easy_perform@@CURL_OPENSSL_4
                 U curl_easy_setopt@@CURL_OPENSSL_4
                 U curl_multi_add_handle@@CURL_OPENSSL_4
                 U curl_multi_cleanup@@CURL_OPENSSL_4
                 U curl_multi_fdset@@CURL_OPENSSL_4
                 U curl_multi_info_read@@CURL_OPENSSL_4
                 U curl_multi_init@@CURL_OPENSSL_4
                 U curl_multi_perform@@CURL_OPENSSL_4
                 U curl_multi_remove_handle@@CURL_OPENSSL_4
                 U curl_multi_setopt@@CURL_OPENSSL_4
                 U curl_multi_wait@@CURL_OPENSSL_4
                 U curl_slist_append@@CURL_OPENSSL_4
                 U curl_slist_free_all@@CURL_OPENSSL_4
                 U curl_version@@CURL_OPENSSL_4
                 U curl_version_info@@CURL_OPENSSL_4

ldd /home/jfm/fletch/build/build/src/GDAL/.libs/libgdal.so |grep curl
/home/jfm/fletch/build/build/src/GDAL/.libs/libgdal.so:
/home/jfm/anaconda3/lib/libcurl.so.4: no version information available
(required by /home/jfm/fletch/build/build/src/GDAL/.libs/libgdal.so)
libcurl.so.4 => /home/jfm/anaconda3/lib/libcurl.so.4 (0x00007f9abd587000)

 nm -D /home/jfm/anaconda3/lib/libcurl.so.4  |grep multi
0000000000033b00 T curl_multi_add_handle
00000000000364b0 T curl_multi_assign
00000000000340d0 T curl_multi_cleanup
0000000000033270 T curl_multi_fdset
0000000000033420 T curl_multi_info_read
0000000000033230 T curl_multi_init
0000000000035b00 T curl_multi_perform
0000000000036270 T curl_multi_remove_handle
0000000000033570 T curl_multi_setopt
0000000000036090 T curl_multi_socket
00000000000360e0 T curl_multi_socket_action
0000000000036130 T curl_multi_socket_all
00000000000385b0 T curl_multi_strerror
0000000000033860 T curl_multi_timeout
00000000000333e0 T curl_multi_wait

So as I read it, the libgdal that I built in build/src/GDAL/.libs is
trying to resolve curl references that use openssl, and the libcurl.so
that it's expecting to resolve those references doesn't use openssl.
So can I configure fletch to use GDAL without openssl? Or should I
build a new libcurl.so with openssl, and if so, how do I tell fletch
to use that libcurl?


More information about the Kwiver-users mailing list