Closed paulocoutinhox closed 2 years ago
See https://github.com/OSGeo/gdal/issues/4126#issuecomment-883696040 and following exchanges
Hi,
I read it, but don't understand how to include the static libraries in the final library.
Can you help me?
You likely need to make sure that only .a files from dependencies, not .so, are available during GDAL build. Or perhaps adding -Wl,-Bstatic
in the front of the LIBS line of GDALmake.opt (after running ./configure)
Hi,
All libraries are static too.
This is very strange, because i pass:
--with-png=/Users/paulo/.conan/data/libpng/1.6.37/_/_/package/1c1795324de75acb0b5cd6b4f7099df0de589fad
--with-libtiff=/Users/paulo/.conan/data/libtiff/4.2.0/_/_/package/0287839fdd171ab75aa9041f04cbf50af032c18d
--with-geotiff=/Users/paulo/.conan/data/libgeotiff/1.7.0/_/_/package/35d40880212d06ef68ee17c7cf449516b078a579
--with-jpeg=/Users/paulo/.conan/data/libjpeg/9d/_/_/package/f5582513960fe0b016319eb58b7a6308f4568d9b
And it contains:
ls /Users/paulo/.conan/data/libpng/1.6.37/_/_/package/1c1795324de75acb0b5cd6b4f7099df0de589fad/lib
libpng.a@ libpng16.a
ls /Users/paulo/.conan/data/libtiff/4.2.0/_/_/package/0287839fdd171ab75aa9041f04cbf50af032c18d/lib
libtiff.a libtiffxx.a
ls /Users/paulo/.conan/data/libgeotiff/1.7.0/_/_/package/35d40880212d06ef68ee17c7cf449516b078a579/lib
cmake/ libgeotiff.a
ls /Users/paulo/.conan/data/libjpeg/9d/_/_/package/f5582513960fe0b016319eb58b7a6308f4568d9b/lib
libjpeg.a
But when configure, it throws:
gdal/3.3.1: Calling:
> ./configure '--datarootdir=/Users/paulo/.conan/data/gdal/3.3.1/_/_/package/f1be77677074c3ffcc0048f1362c881bddae9aa4/res' '--disable-shared' '--enable-static' '--without-sse' '--without-ssse3' '--without-avx' '--disable-lto' '--with-hide_internal_symbols' '--without-local' '--with-threads=yes' '--with-proj=yes' '--with-libz=yes' '--with-libdeflate=yes' '--with-libiconv-prefix=/Users/paulo/.conan/data/libiconv/1.16/_/_/package/f5582513960fe0b016319eb58b7a6308f4568d9b' '--with-liblzma=no' '--with-zstd=no' '--with-pg=no' '--without-grass' '--without-libgrass' '--with-cfitsio=no' '--with-pcraster=internal' '--with-png=/Users/paulo/.conan/data/libpng/1.6.37/_/_/package/1c1795324de75acb0b5cd6b4f7099df0de589fad' '--with-dds=no' '--with-gta=no' '--with-pcidsk=internal' '--with-libtiff=/Users/paulo/.conan/data/libtiff/4.2.0/_/_/package/0287839fdd171ab75aa9041f04cbf50af032c18d' '--with-geotiff=/Users/paulo/.conan/data/libgeotiff/1.7.0/_/_/package/35d40880212d06ef68ee17c7cf449516b078a579' '--with-jpeg=/Users/paulo/.conan/data/libjpeg/9d/_/_/package/f5582513960fe0b016319eb58b7a6308f4568d9b' '--without-jpeg12' '--with-charls=no' '--with-gif=/Users/paulo/.conan/data/giflib/5.2.1/_/_/package/f5582513960fe0b016319eb58b7a6308f4568d9b' '--without-ogdi' '--without-fme' '--without-sosi' '--without-mongocxx' '--with-mongocxxv3=no' '--with-hdf4=no' '--with-hdf5=no' '--with-kea=no' '--with-netcdf=no' '--with-jasper=no' '--with-openjpeg=no' '--without-fgdb' '--without-ecw' '--without-kakadu' '--without-mrsid' '--without-jp2mrsid' '--without-mrsid_lidar' '--without-jp2lura' '--without-msg' '--without-oci' '--with-gnm=yes' '--with-mysql=no' '--without-ingres' '--with-xerces=no' '--with-expat=no' '--with-libkml=no' '--without-odbc' '--without-dods-root' '--with-curl=no' '--with-xml2=no' '--without-spatialite' '--with-sqlite3=yes' '--without-rasterlite2' '--with-pcre=no' '--without-teigha' '--without-idb' '--without-epsilon' '--with-webp=no' '--with-geos=yes' '--without-sfcgal' '--with-qhull=yes' '--without-opencl' '--with-freexl=no' '--with-libjson-c=/Users/paulo/.conan/data/json-c/0.15/_/_/package/f5582513960fe0b016319eb58b7a6308f4568d9b' '--with-poppler=no' '--without-podofo' '--with-pdfium=/Users/paulo/Developer/workspaces/cpp/gdal-pdfium/build/pdfium/release/arm' '--without-perl' '--without-python' '--without-java' '--without-hdfs' '--without-tiledb' '--without-mdb' '--without-rasdaman' '--without-rdb' '--without-armadillo' '--with-cryptopp=no' '--with-crypto=no' '--with-lerc=no' '--with-exr=no' '--with-heif=no' '--prefix=/Users/paulo/.conan/data/gdal/3.3.1/_/_/package/f1be77677074c3ffcc0048f1362c881bddae9aa4' '--bindir=${prefix}/bin' '--sbindir=${prefix}/bin' '--libexecdir=${prefix}/bin' '--libdir=${prefix}/lib' '--includedir=${prefix}/include' '--oldincludedir=${prefix}/include' --build=x86_64-apple-darwin --host=arm-apple-ios
configure: WARNING: unrecognized options: --without-epsilon
checking build system type... x86_64-apple-darwin
checking host system type... arm-apple-ios
checking for arm-apple-ios-gcc... no
checking for gcc... gcc
configure: WARNING: using cross tools not prefixed with host triplet
checking whether the C compiler works... yes
checking for C compiler default output file name... a.out
checking for suffix of executables...
checking whether we are cross compiling... yes
checking for suffix of object files... o
checking whether the compiler supports GNU C... yes
checking whether gcc accepts -g... yes
checking for gcc option to enable C11 features... none needed
checking C_WFLAGS for maximum warnings... -Wall -Wdeclaration-after-statement
checking for arm-apple-ios-g++... no
checking for arm-apple-ios-c++... no
checking for arm-apple-ios-gpp... no
checking for arm-apple-ios-aCC... no
checking for arm-apple-ios-CC... no
checking for arm-apple-ios-cxx... no
checking for arm-apple-ios-cc++... no
checking for arm-apple-ios-cl.exe... no
checking for arm-apple-ios-FCC... no
checking for arm-apple-ios-KCC... no
checking for arm-apple-ios-RCC... no
checking for arm-apple-ios-xlC_r... no
checking for arm-apple-ios-xlC... no
checking for arm-apple-ios-clang++... no
checking for g++... g++
checking whether the compiler supports GNU C++... yes
checking whether g++ accepts -g... yes
checking for g++ option to enable C++11 features... none needed
checking CXX_WFLAGS for maximum warnings... -Wall
checking whether C compiler accepts -Werror -we10006... no
checking whether C compiler accepts -diag-disable 188,1684,2259,2304,3280,11074,11076... no
checking whether C compiler accepts -Wextra... yes
checking whether C compiler accepts -Winit-self... yes
checking whether C compiler accepts -Wunused-parameter... yes
checking whether C compiler accepts -Wmissing-prototypes... yes
checking whether C compiler accepts -Wmissing-declarations... yes
checking whether C compiler accepts -Wformat... yes
checking whether C compiler accepts -Wformat -Werror=format-security -Wno-format-nonliteral... yes
checking whether C compiler accepts -Wshorten-64-to-32... yes
checking whether C compiler accepts -Wlogical-op... no
checking whether C compiler accepts -Wshadow... yes
checking whether C compiler accepts -Wmissing-include-dirs... yes
checking whether C compiler accepts -Werror=vla... yes
checking whether C compiler accepts -Wdate-time... yes
checking whether C compiler accepts -Wnull-dereference... yes
checking whether C compiler accepts -Wduplicated-cond... no
checking whether C++ compiler accepts -Wextra-semi... yes
checking whether C compiler accepts -Wno-sign-compare... yes
checking whether C compiler accepts -Wcomma... yes
checking whether C compiler accepts -Wfloat-conversion... yes
checking whether C compiler accepts -Wdocumentation -Wno-documentation-deprecated-sync... yes
checking whether C++ compiler accepts -Wunused-private-field... yes
checking whether C++ compiler accepts -Wmissing-declarations... yes
checking whether C++ compiler accepts -Wnon-virtual-dtor... yes
checking whether C++ compiler accepts -Wold-style-cast... yes
checking whether C++ compiler accepts -Weffc++... yes
checking if -Weffc++ should be enabled... yes
checking whether C++ compiler accepts -Woverloaded-virtual... yes
checking whether C++ compiler accepts -fno-operator-names... yes
checking whether C++ compiler accepts -Wzero-as-null-pointer-constant... yes
checking if use C++14 compiler options... disabled by user
checking whether g++ supports C++11 features by default... no
checking whether g++ supports C++11 features with -std=c++11... yes
checking whether C++ compiler accepts -Wsuggest-override... yes
checking if -Wimplicit-fallthrough can be enabled... yes
checking for arm-apple-ios-gcc... gcc
checking whether the compiler supports GNU C... (cached) yes
checking whether gcc accepts -g... (cached) yes
checking for gcc option to enable C11 features... (cached) none needed
checking whether the compiler supports GNU C++... (cached) yes
checking whether g++ -std=c++11 accepts -g... (cached) yes
checking for g++ -std=c++11 option to enable C++11 features... (cached) none needed
checking how to print strings... printf
checking for a sed that does not truncate output... /usr/bin/sed
checking for grep that handles long lines and -e... /usr/bin/grep
checking for egrep... /usr/bin/grep -E
checking for fgrep... /usr/bin/grep -F
checking for ld used by gcc... /Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/ld
checking if the linker (/Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/ld) is GNU ld... no
checking for BSD- or MS-compatible name lister (nm)... no
checking for arm-apple-ios-dumpbin... no
checking for arm-apple-ios-link... no
checking for dumpbin... no
checking for link... link -dump
checking the name lister (nm) interface... BSD nm
checking whether ln -s works... yes
checking the maximum length of command line arguments... 786432
checking how to convert x86_64-apple-darwin file names to arm-apple-ios format... func_convert_file_noop
checking how to convert x86_64-apple-darwin file names to toolchain format... func_convert_file_noop
checking for /Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/ld option to reload object files... -r
checking for arm-apple-ios-objdump... objdump
checking how to recognize dependent libraries... unknown
checking for arm-apple-ios-dlltool... dlltool
checking how to associate runtime and link libraries... printf %s\n
checking for arm-apple-ios-ar... no
checking for ar... ar
checking for archiver @FILE support... no
checking for arm-apple-ios-strip... no
checking for strip... strip
checking for arm-apple-ios-ranlib... no
checking for ranlib... ranlib
checking for gawk... no
checking for mawk... no
checking for nawk... no
checking for awk... awk
checking command to parse nm output from gcc object... ok
checking for sysroot... no
checking for a working dd... /bin/dd
checking how to truncate binary pipes... /bin/dd bs=4096 count=1
checking for arm-apple-ios-mt... no
checking for mt... no
checking if : is a manifest tool... no
checking for stdio.h... yes
checking for stdlib.h... yes
checking for string.h... yes
checking for inttypes.h... yes
checking for stdint.h... yes
checking for strings.h... yes
checking for sys/stat.h... yes
checking for sys/types.h... yes
checking for unistd.h... yes
checking for dlfcn.h... yes
checking for objdir... .libs
checking if gcc supports -fno-rtti -fno-exceptions... yes
checking for gcc option to produce PIC... -fPIC -DPIC
checking if gcc PIC flag -fPIC -DPIC works... yes
checking if gcc static flag -static works... no
checking if gcc supports -c -o file.o... yes
checking if gcc supports -c -o file.o... (cached) yes
checking whether the gcc linker (/Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/ld) supports shared libraries... no
checking dynamic linker characteristics... no
checking how to hardcode library paths into programs... unsupported
checking whether stripping libraries is possible... no
checking if libtool supports shared libraries... no
checking whether to build shared libraries... no
checking whether to build static libraries... yes
checking how to run the C++ preprocessor... g++ -std=c++11 -E
checking for ld used by g++ -std=c++11... /Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/ld
checking if the linker (/Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/ld) is GNU ld... no
checking whether the g++ -std=c++11 linker (/Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/ld) supports shared libraries... no
checking for g++ -std=c++11 option to produce PIC... -fPIC -DPIC
checking if g++ -std=c++11 PIC flag -fPIC -DPIC works... yes
checking if g++ -std=c++11 static flag -static works... no
checking if g++ -std=c++11 supports -c -o file.o... yes
checking if g++ -std=c++11 supports -c -o file.o... (cached) yes
checking whether the g++ -std=c++11 linker (/Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/ld) supports shared libraries... no
checking dynamic linker characteristics... no
checking how to hardcode library paths into programs... unsupported
checking for std::isnan... yes
checking for dlopen in -ldl... yes
checking for nanosleep in -lrt... no
checking for sin in -lm... yes
checking for egrep... (cached) /usr/bin/grep -E
checking for assert.h... yes
checking for fcntl.h... yes
checking for unistd.h... (cached) yes
checking for dbmalloc.h... no
checking for dlfcn.h... (cached) yes
checking for stdint.h... (cached) yes
checking for limits.h... yes
checking for locale.h... yes
checking for values.h... no
checking for float.h... yes
checking for errno.h... yes
checking for direct.h... no
checking for linux/userfaultfd.h... no
checking whether byte ordering is bigendian... no
checking for long long... yes
checking for 64bit file io... yes
checking for stat64... yes
checking for fopen64... no
checking for ftruncate64... no
checking size of int... 4
checking size of unsigned long... 4
checking size of void*... 4
checking for int8... no
checking for int16... no
checking for int32... no
checking for uintptr_t... yes
checking for vprintf... yes
checking for snprintf... yes
checking for vsnprintf... yes
checking for atoll... yes
checking for strtoll... yes
checking for strtoull... yes
checking for strtof... yes
checking for getcwd... yes
checking for gcc options needed to detect all undeclared functions... -fno-builtin
checking whether strtof is declared... yes
checking for readlink... yes
checking for lstat... yes
checking for posix_spawnp... yes
checking for posix_memalign... yes
checking for vfork... yes
checking for mmap... yes
checking for sigaction... yes
checking for statvfs... yes
checking for statvfs64... no
checking for getrlimit... yes
checking for RLIMIT_AS... yes
checking for gmtime_r... yes
checking for localtime_r... yes
checking for uselocale... no
checking to enable debug build... no, CFLAGS="-O3 -fPIC -mios-version-min=9.0 -isysroot /Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS14.5.sdk -arch armv7 -fembed-bitcode -fobjc-arc"
checking whether GCC 4.1 atomic builtins are available... yes
checking whether GCC bswap builtins are available... no
checking for __uint128_t... no
checking whether SSE is available at compile time... no
checking whether SSSE3 is available at compile time... no
checking whether AVX is available at compile time... no
checking to enable LTO (link time optimization) build... no
checking whether we should hide internal symbols... yes
checking for local include/lib path... none
checking for pthread_create in -lpthread... yes
checking for PTHREAD_MUTEX_RECURSIVE... yes
checking for PTHREAD_MUTEX_ADAPTIVE_NP... no
checking for pthread_spinlock_t... no
checking for 5 args mremap()... yes
checking for _SC_PHYS_PAGES... yes
checking for deflateInit_ in -lz... yes
checking for inflateCopy in -lz... yes
using pre-installed libz
checking for ld used by GCC... /Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/ld
checking if the linker (/Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/ld) is GNU ld... no
checking for shared library run path origin... done
checking for iconv... no, consider installing GNU libiconv
configure: Bash completions not requested
using libjpeg from /Users/paulo/.conan/data/libjpeg/9d/_/_/package/f5582513960fe0b016319eb58b7a6308f4568d9b.
checking for libtiff... using libtiff from /Users/paulo/.conan/data/libtiff/4.2.0/_/_/package/0287839fdd171ab75aa9041f04cbf50af032c18d.
checking for TIFFScanlineSize64 in -ltiff... no
configure: error: libtiff >= 4.0 is required.
gdal/3.3.1:
gdal/3.3.1: ERROR: Package 'f1be77677074c3ffcc0048f1362c881bddae9aa4' build failed
gdal/3.3.1: WARN: Build folder /Users/paulo/.conan/data/gdal/3.3.1/_/_/build/f1be77677074c3ffcc0048f1362c881bddae9aa4
ERROR: gdal/3.3.1: Error in build() method, line 1340
autotools = self._configure_autotools()
while calling '_configure_autotools', line 1300
self._autotools.configure(args=args, vars=env_build_vars)
ConanException: Error 1 while executing ./configure '--datarootdir=/Users/paulo/.conan/data/gdal/3.3.1/_/_/package/f1be77677074c3ffcc0048f1362c881bddae9aa4/res' '--disable-shared' '--enable-static' '--without-sse' '--without-ssse3' '--without-avx' '--disable-lto' '--with-hide_internal_symbols' '--without-local' '--with-threads=yes' '--with-proj=yes' '--with-libz=yes' '--with-libdeflate=yes' '--with-libiconv-prefix=/Users/paulo/.conan/data/libiconv/1.16/_/_/package/f5582513960fe0b016319eb58b7a6308f4568d9b' '--with-liblzma=no' '--with-zstd=no' '--with-pg=no' '--without-grass' '--without-libgrass' '--with-cfitsio=no' '--with-pcraster=internal' '--with-png=/Users/paulo/.conan/data/libpng/1.6.37/_/_/package/1c1795324de75acb0b5cd6b4f7099df0de589fad' '--with-dds=no' '--with-gta=no' '--with-pcidsk=internal' '--with-libtiff=/Users/paulo/.conan/data/libtiff/4.2.0/_/_/package/0287839fdd171ab75aa9041f04cbf50af032c18d' '--with-geotiff=/Users/paulo/.conan/data/libgeotiff/1.7.0/_/_/package/35d40880212d06ef68ee17c7cf449516b078a579' '--with-jpeg=/Users/paulo/.conan/data/libjpeg/9d/_/_/package/f5582513960fe0b016319eb58b7a6308f4568d9b' '--without-jpeg12' '--with-charls=no' '--with-gif=/Users/paulo/.conan/data/giflib/5.2.1/_/_/package/f5582513960fe0b016319eb58b7a6308f4568d9b' '--without-ogdi' '--without-fme' '--without-sosi' '--without-mongocxx' '--with-mongocxxv3=no' '--with-hdf4=no' '--with-hdf5=no' '--with-kea=no' '--with-netcdf=no' '--with-jasper=no' '--with-openjpeg=no' '--without-fgdb' '--without-ecw' '--without-kakadu' '--without-mrsid' '--without-jp2mrsid' '--without-mrsid_lidar' '--without-jp2lura' '--without-msg' '--without-oci' '--with-gnm=yes' '--with-mysql=no' '--without-ingres' '--with-xerces=no' '--with-expat=no' '--with-libkml=no' '--without-odbc' '--without-dods-root' '--with-curl=no' '--with-xml2=no' '--without-spatialite' '--with-sqlite3=yes' '--without-rasterlite2' '--with-pcre=no' '--without-teigha' '--without-idb' '--without-epsilon' '--with-webp=no' '--with-geos=yes' '--without-sfcgal' '--with-qhull=yes' '--without-opencl' '--with-freexl=no' '--with-libjson-c=/Users/paulo/.conan/data/json-c/0.15/_/_/package/f5582513960fe0b016319eb58b7a6308f4568d9b' '--with-poppler=no' '--without-podofo' '--with-pdfium=/Users/paulo/Developer/workspaces/cpp/gdal-pdfium/build/pdfium/release/arm' '--without-perl' '--without-python' '--without-java' '--without-hdfs' '--without-tiledb' '--without-mdb' '--without-rasdaman' '--without-rdb' '--without-armadillo' '--with-cryptopp=no' '--with-crypto=no' '--with-lerc=no' '--with-exr=no' '--with-heif=no' '--prefix=/Users/paulo/.conan/data/gdal/3.3.1/_/_/package/f1be77677074c3ffcc0048f1362c881bddae9aa4' '--bindir=${prefix}/bin' '--sbindir=${prefix}/bin' '--libexecdir=${prefix}/bin' '--libdir=${prefix}/lib' '--includedir=${prefix}/include' '--oldincludedir=${prefix}/include' --build=x86_64-apple-darwin --host=arm-apple-ios
COMMAND: conan create /Users/paulo/Developer/workspaces/cpp/gdal-pdfium/conan/conanfile.py -pr:b /Users/paulo/Developer/workspaces/cpp/gdal-pdfium/profile/macos-profile -pr:h /Users/paulo/Developer/workspaces/cpp/gdal-pdfium/profile/ios-profile -s:h arch=armv7 -s:h build_type=Release -s:h os.version=9.0 -o darwin-toolchain:enable_bitcode=True -o darwin-toolchain:enable_arc=True -o darwin-toolchain:enable_visibility=True -o gdal:with_pdfium=/Users/paulo/Developer/workspaces/cpp/gdal-pdfium/build/pdfium/release/arm --build=missing --test-folder=None
WORKING DIR: /Users/paulo/Developer/workspaces/cpp/gdal-pdfium/build/ios/armv7/conan
[ERROR] Command execution has failed
GDALmake.opt
Hi,
You mean instead of:
LIBS = @LIBS@ $(KAK_LIBS) $(DWG_LIBS) $(CURL_LIB) \
$(MRSID_LIBS) $(MRSID_LIDAR_LIBS) $(ECW_LIBS) $(INGRES_LIB) \
$(PCIDSK_LIB) $(RASDAMAN_LIB) $(SOSI_LIB) \
$(OPENCL_LIB) $(JVM_LIB) $(LIBICONV) $(FGDB_LIB) $(LIBXML2_LIB) $(MONGODB_LIB) \
$(MONGOCXXV3_LIBS) $(JNI_LIB) $(HDFS_LIB)
will be:
LIBS = -Wl,-Bstatic @LIBS@ $(KAK_LIBS) $(DWG_LIBS) $(CURL_LIB) \
$(MRSID_LIBS) $(MRSID_LIDAR_LIBS) $(ECW_LIBS) $(INGRES_LIB) \
$(PCIDSK_LIB) $(RASDAMAN_LIB) $(SOSI_LIB) \
$(OPENCL_LIB) $(JVM_LIB) $(LIBICONV) $(FGDB_LIB) $(LIBXML2_LIB) $(MONGODB_LIB) \
$(MONGOCXXV3_LIBS) $(JNI_LIB) $(HDFS_LIB)
And instead of:
LIBS += $(MYSQL_LIB)
will be:
LIBS += -Wl,-Bstatic $(MYSQL_LIB)
For all LIBS += [something]
?
closing as autoconf build system is going to be removed
Hi,
I build GDAL for iOS and now im testing it, but when i use on iOS i get link problems.
When i build GDAL with png, gif etc it is not compiled both statically inside one static final library?