[gdal-dev] About installing EXPAT

Uhrig, Stefan stefan.uhrig at sap.com
Thu Sep 28 02:45:42 PDT 2023


Hi Abel,

I can recommend vcpkg (https://vcpkg.io/) if you’d like to build GDAL on Windows with Visual Studio or Visual Studio Community Edition.

vcpkg builds packages from sources and can build the mandatory dependencies of GDAL (and a lot of optional ones). You get a working starting set via

vcpkg --triplet=x64-windows install curl expat geos lerc libdeflate libgeotiff libiconv libpng libxml2 openssl proj qhull sqlite3[rtree] xerces-c zlib

You can then open GDAL’s CMakeLists.txt file in Visual Studio via File -> Open -> CMake… After configuration, you can just start the build:

>------ Build All started: Project: gdal, Configuration: x64-Debug ------
  [1/1351] Building C object frmts\zlib\CMakeFiles\libz.dir\crc32.c.obj
  [2/1351] Building C object frmts\zlib\CMakeFiles\libz.dir\trees.c.obj
  [3/1351] Building C object frmts\zlib\CMakeFiles\libz.dir\uncompr.c.obj
...
  [1348/1351] Linking CXX executable fuzzers\tests\test_ogr_fuzzer.exe
  [1349/1351] Linking CXX executable fuzzers\tests\test_gdal_fuzzer.exe
  [1350/1351] Linking CXX executable perftests\bench_ogr_c_api.exe
  [1351/1351] Linking CXX executable fuzzers\tests\test_osr_set_from_user_input_fuzzer.exe

Build All succeeded.

vcpkg builds debug and release versions of the packages. As the packages are built from source, you can even debug into the dependencies because the source code is on your machine. That can be really helpful from time to time.

I’d recommend starting from a clean environment though. I guess you tweaked quite a lot to get GDAL building.

Cheers,
Stefan

From: gdal-dev <gdal-dev-bounces at lists.osgeo.org> On Behalf Of Abel Pau via gdal-dev
Sent: Monday, September 25, 2023 5:25 PM
To: Even Rouault <even.rouault at spatialys.com>; gdal dev <gdal-dev at lists.osgeo.org>
Subject: Re: [gdal-dev] About installing EXPAT

Hi again,
well after using CONDA_PREFIX some errors appear about packages that are not included (I suppose).

archive.dll
libcrypto-3-x64.dll
libssl-3-x64.dll
liblz4.dll

Are they familiar to you?


De: Even Rouault <even.rouault at spatialys.com<mailto:even.rouault at spatialys.com>>
Enviado el: dilluns, 25 de setembre de 2023 16:32
Para: Abel Pau <a.pau at creaf.uab.cat<mailto:a.pau at creaf.uab.cat>>; gdal dev <gdal-dev at lists.osgeo.org<mailto:gdal-dev at lists.osgeo.org>>
Asunto: Re: [gdal-dev] About installing EXPAT


Add -DCMAKE_PREFIX_PATH="$CONDA_PREFIX" to your CMake invokation (assuming your have activate your Conda environment, so CONDA_PREFIX is set)

My suggestion is inspired from our CI Conda based Windows build: https://github.com/OSGeo/gdal/blob/7fc7bb59d2b2de1dca03dd18c14005f2b64adb49/.github/workflows/cmake_builds.yml#L463

You should also probably clear your existing CMakeCache.txt before doing the abve, to avoid mixing with variables set from your previous experiments
Le 25/09/2023 à 16:21, Abel Pau a écrit :
Hi Even,
I really appreciate your help.

I prefer going by the easy way so once installed miniconda and applied all the described in download.htm.

To have the EXPAT installed I do that: conda install expat

And the, when I try the cmake .. some issues appear

D:\GitHub-repository\GDAL\build>cmake ..
-- Selecting Windows SDK version 10.0.19041.0 to target Windows 10.0.19045.
-- GDAL_VERSION          = 3.8.0dev
-- GDAL_ABI_FULL_VERSION = 38
-- GDAL_SOVERSION        =
-- Could NOT find MSSQL_NCLI (missing: MSSQL_NCLI_LIBRARY MSSQL_NCLI_INCLUDE_DIR MSSQL_NCLI_VERSION)
-- Could NOT find MSSQL_ODBC (missing: MSSQL_ODBC_LIBRARY MSSQL_ODBC_INCLUDE_DIR MSSQL_ODBC_VERSION)
-- Could NOT find MySQL (missing: MYSQL_LIBRARY MYSQL_INCLUDE_DIR)
-- Could NOT find CURL (missing: CURL_LIBRARY CURL_INCLUDE_DIR)
-- Could NOT find Iconv (missing: Iconv_LIBRARY Iconv_CHARSET_LIBRARY Iconv_INCLUDE_DIR)
-- Could NOT find LibXml2 (missing: LIBXML2_LIBRARY LIBXML2_INCLUDE_DIR)
-- Could NOT find EXPAT (missing: EXPAT_DIR)
-- Could NOT find EXPAT (missing: EXPAT_LIBRARY EXPAT_INCLUDE_DIR)
CMake Error at cmake/helpers/CheckDependentLibraries.cmake:202 (message):
  Configured to use EXPAT, but not found
Call Stack (most recent call first):
  cmake/helpers/CheckDependentLibraries.cmake:348 (gdal_check_package)
  gdal.cmake:265 (include)
  CMakeLists.txt:280 (include)


-- Configuring incomplete, errors occurred!

D:\GitHub-repository\GDAL\build>

There is something I don’t understand because I don’t know what to do now.
Why after doing an gdal_master_env and installing everything and expat it doesn’t work?

Once again, I appreciate your help :)


De: Even Rouault <even.rouault at spatialys.com><mailto:even.rouault at spatialys.com>
Enviado el: dilluns, 25 de setembre de 2023 14:30
Para: Abel Pau <a.pau at creaf.uab.cat><mailto:a.pau at creaf.uab.cat>; gdal dev <gdal-dev at lists.osgeo.org><mailto:gdal-dev at lists.osgeo.org>
Asunto: Re: [gdal-dev] About installing EXPAT


Abel,

In Cmakefile.txt of the project I’ve configured this (below # Developer may want to specify some variable to find proper version.):
set(EXPAT_INCLUDE_DIR "D:/GitHub-repository/libexpat/expat/lib")
set(EXPAT_LIBRARY "D:/GitHub-repository/libexpat/expat/build/Debug/libexpatd.lib")
Is this .lib a static library, or an import library of the .dll ? My assumption (I may be wrong) is that it is an import lib of the .dll. In which case you must not set EXPAT_USE_STATIC_LIBS

set(EXPAT_LIBRARY "D:/GitHub-repository/libexpat/expat/build/Debug/libexpatd.dll")

That won't work. This needs to be a .lib

You'd better run cmake again on expat with a -DCMAKE_INSTALL_PREFIX=d:/install-prefix   and run "cmake --build . --target install", and then when building GDAL, use "cmake .. -DCMAKE_PREFIX_PATH=d:/install-prefix", so it automatically configures things from what is found in d:/install-prefix

You could also potentially use vcpkg or conda to install GDAL dependencies instead of building them from scratch: https://gdal.org/download.html

Even

--

http://www.spatialys.com<http://www.spatialys.com/>

My software is free, but my time generally not.

--

http://www.spatialys.com<http://www.spatialys.com/>

My software is free, but my time generally not.
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.osgeo.org/pipermail/gdal-dev/attachments/20230928/80cd5017/attachment-0001.htm>


More information about the gdal-dev mailing list