[gdal-dev] FW: [External] : GDAL 3.8.4 build on windows failed at linking

Fengting Chen fengting.chen at oracle.com
Fri Mar 15 12:59:26 PDT 2024


Thanks for the information. Making the driver part of the GDAL library resolved the issue. Another issue is about the python bindings, there was no error in the build process but no python binding built. I see the following warnings:

C:\Program Files\Microsoft Visual Studio\2022\Professional\MSBuild\Microsoft\VC\v170\Microsoft.CppCommon.targets(237,5): warning MSB8065: Custom build for item "C:\fechen\gdal-3.8.4\build\CMakeFiles\b568dadc5794ca78a5a6fb5e818aa83e\_gdal.cp36-win_amd64.pyd.rule" succeeded, but specified output "c:\fechen\gdal-3.8.4\build\swig\python\osgeo\_gdal.cp36-win_amd64.pyd" has not been created. This may cause incremental build to work incorrectly. [C:\fechen\gdal-3.8.4\build\swig\python\python_binding.vcxproj]

Could this warning have caused the python_binding from built and installed? If so, how to resolve it?

From: Even Rouault <even.rouault at spatialys.com>
Date: Thursday, March 14, 2024 at 2:42 PM
To: Fengting Chen <fengting.chen at oracle.com>, gdal-dev at lists.osgeo.org <gdal-dev at lists.osgeo.org>
Subject: Re: [gdal-dev] FW: [External] : GDAL 3.8.4 build on windows failed at linking


Le 14/03/2024 à 19:27, Fengting Chen a écrit :
I included this fix but it doesn’t help. I was building the georaster driver as a plugin but the linker failed at building gdal library. So the fix doesn’t seem to be related to the problem.

You can't build the driver as a plugin with internal libjpeg. CMake should prevent you from doing that because of

https://github.com/OSGeo/gdal/blob/master/frmts/georaster/CMakeLists.txt#L6<https://urldefense.com/v3/__https:/github.com/OSGeo/gdal/blob/master/frmts/georaster/CMakeLists.txt*L6__;Iw!!ACWV5N9M2RV99hQ!IPkRR1ZcwIotVYxg7JvUkznsl_LyC4GdbxYHcjQHjM4XR6sDe6iar5JIdCexcK9XtV-w_h_sJ6_vvtAF1OuFlbq7hyqM$>

But I now remember (thanks git blame!) that during the defered driver loading RFC development, I found that the condition to check that was broken. This was fixed in https://github.com/OSGeo/gdal/commit/adb0fd695253cf9fb91bee46309e6c66b25e8d65<https://urldefense.com/v3/__https:/github.com/OSGeo/gdal/commit/adb0fd695253cf9fb91bee46309e6c66b25e8d65__;!!ACWV5N9M2RV99hQ!IPkRR1ZcwIotVYxg7JvUkznsl_LyC4GdbxYHcjQHjM4XR6sDe6iar5JIdCexcK9XtV-w_h_sJ6_vvtAF1OuFlb-Yzxpn$>

Building Custom Rule C:/fechen/gdal-3.8.4/CMakeLists.txt
vsidataio.obj : error LNK2005: "void __cdecl jpeg_vsiio_src(struct jpeg_decompress_struct *,struct VSIVirtualHandle *)"
(?jpeg_vsiio_src@@YAXPEAUjpeg_decompress_struct@@PEAUVSIVirtualHandle@@@Z) already defined in vsidataio.obj [C:\fechen\gdal-3.8.4\build\GDAL.vcxproj]
vsidataio.obj : error LNK2005: "void __cdecl jpeg_vsiio_dest(struct jpeg_compress_struct *,struct VSIVirtualHandle *)" (?jpeg_vsiio_dest@@YAXPEAUjpeg_compress_struct@@PEAUVSIVirtualHandle@@@Z) already defined in vsidataio.obj [C:\fechen\gdal-3.8.4\build\GDAL.vcxproj]
     Creating library C:/fechen/gdal-3.8.4/build/Debug/gdald.lib and object C:/fechen/gdal-3.8.4/build/Debug/gdald.exp
C:\fechen\gdal-3.8.4\build\Debug\gdald.dll : fatal error LNK1169: one or more multiply defined symbols found [C:\fechen\gdal-3.8.4\build\GDAL.vcxproj]

From: Even Rouault <even.rouault at spatialys.com><mailto:even.rouault at spatialys.com>
Date: Thursday, March 14, 2024 at 11:52 AM
To: Fengting Chen <fengting.chen at oracle.com><mailto:fengting.chen at oracle.com>, gdal-dev at lists.osgeo.org<mailto:gdal-dev at lists.osgeo.org> <gdal-dev at lists.osgeo.org><mailto:gdal-dev at lists.osgeo.org>
Subject: Re: [gdal-dev] FW: [External] : GDAL 3.8.4 build on windows failed at linking

Hi,

possibly already fixed in master with commit https://github.com/OSGeo/gdal/commit/849226ce1a9<https://urldefense.com/v3/__https:/github.com/OSGeo/gdal/commit/849226ce1a9__;!!ACWV5N9M2RV99hQ!KbMOD2u6nEacIP2ix07m6Y00zYu21fPOi8h2u_p-cjBCRSh9U8hYhTmK3txq5tv2LAvFBFXNfErVwdiaD9U8YKKFUCjQ$>

Even
Le 14/03/2024 à 16:47, Fengting Chen a écrit :
After upgrading the windows build environment to VS2022, I got the following linker error:

vsidataio.obj : error LNK2005: "void __cdecl jpeg_vsiio_src(struct jpeg_decompress_struct *,struct VSIVirtualHandle *)" (?jpeg_vsiio_src@@YAXPEAUjpeg_decompress_struct@@PEAUVSIVirtualHandle@@@Z) already defined in vsidataio.obj [C:\fechen\gdal-3.8.4\build\GDAL.vcxproj]
vsidataio.obj : error LNK2005: "void __cdecl jpeg_vsiio_dest(struct jpeg_compress_struct *,struct VSIVirtualHandle *)" (?jpeg_vsiio_dest@@YAXPEAUjpeg_compress_struct@@PEAUVSIVirtualHandle@@@Z) already defined in vsidataio.obj [C:\fechen\gdal-3.8.4\build\GDAL.vcxproj]
     Creating library C:/fechen/gdal-3.8.4/build/Debug/gdald.lib and object C:/fechen/gdal-3.8.4/build/Debug/gdald.exp
C:\fechen\gdal-3.8.4\build\Debug\gdald.dll : fatal error LNK1169: one or more multiply defined symbols found [C:\fechen\gdal-3.8.4\build\GDAL.vcxproj]

I set “GDAL_USE_JPEG_INTERNAL”  with “ON”. Any suggestions?

Thanks!

From: Even Rouault <even.rouault at spatialys.com><mailto:even.rouault at spatialys.com>
Date: Tuesday, March 12, 2024 at 12:56 PM
To: Fengting Chen <fengting.chen at oracle.com><mailto:fengting.chen at oracle.com>, gdal-dev at lists.osgeo.org<mailto:gdal-dev at lists.osgeo.org> <gdal-dev at lists.osgeo.org><mailto:gdal-dev at lists.osgeo.org>
Subject: Re: [gdal-dev] FW: [External] : GDAL 3.8.4 build on windows failed at linking

Not the answer you'll probably want to hear, but:

- Use an up-to-date compiler

- Use package distributions like vcpkg or conda-forge that already brings all the dependencies "for free"

- It seems you mix builds of different compilers (VS vs mingw). That's a bit asking for troubles ;-)
Le 12/03/2024 à 17:48, Fengting Chen via gdal-dev a écrit :
Resend with more information:

I am trying to build GDAL 3.8.4 on windows under VS2015. The build failed at linking stage that a bunch of external symbols not found, specifically the symbols in libproj, libcurl. I checked the dll library stub .lib for libproj and libcurl using “dumpbin” and found the symbols in the library a little different, for example the linker error shows “__imp__curl_slist_append” not found, the symbol output from the “dumpbin” is  “__imp_curl_slist_append” .

Any idea how to fix this?

Thanks!

From: gdal-dev <gdal-dev-bounces at lists.osgeo.org><mailto:gdal-dev-bounces at lists.osgeo.org> on behalf of Fengting Chen via gdal-dev <gdal-dev at lists.osgeo.org><mailto:gdal-dev at lists.osgeo.org>
Date: Monday, March 11, 2024 at 4:50 PM
To: gdal-dev at lists.osgeo.org<mailto:gdal-dev at lists.osgeo.org> <gdal-dev at lists.osgeo.org><mailto:gdal-dev at lists.osgeo.org>
Subject: [External] : [gdal-dev] GDAL 3.8.4 build on windows failed at linking
GDAL 3.8.4 build on Windows from VS2015 x64 command prompt: “cmake –build .” throws the following error (there are more similar errors):

cpl_vsil_az.obj : error LNK2001: unresolved external symbol __imp__curl_slist_append [E:\gdal-3.8.4\build\GDAL.vcxproj]

cmake options has:

set (GDAL_USE_CURL                ON   CACHE  BOOL "" FORCE)
set (CURL_INCLUDE_DIR             "E:/SDK/curl-8.6.0_1-win64-mingw/include" CACHE PATH "" FORCE)
set (CURL_LIBRARY_RELEASE         "E:/SDK/curl-8.6.0_1-win64-mingw/bin/libcurl-x64.lib" CACHE FILEPATH "" FORCE)

libcurl-x64.lib is the DLL stub. Using dumpbin on libcurl-x64.lib shows that “__imp_curl_slist_append” is available. But the linker error is “__imp__curl_slist_append” not found. There is an extra “_” in it.

Any idea why this error occurred?

Thanks!




_______________________________________________

gdal-dev mailing list

gdal-dev at lists.osgeo.org<mailto:gdal-dev at lists.osgeo.org>

https://lists.osgeo.org/mailman/listinfo/gdal-dev<https://urldefense.com/v3/__https:/lists.osgeo.org/mailman/listinfo/gdal-dev__;!!ACWV5N9M2RV99hQ!N8ZTSFcueASfCUE2XGRgmOMaX6fq5SFf-Tq25Un9Kws27WD09uZjzbSDMeAzmhzOrmz0mgSpFItXVTdprbA3RxpGPNVk$>

--

http://www.spatialys.com<https://urldefense.com/v3/__http:/www.spatialys.com__;!!ACWV5N9M2RV99hQ!N8ZTSFcueASfCUE2XGRgmOMaX6fq5SFf-Tq25Un9Kws27WD09uZjzbSDMeAzmhzOrmz0mgSpFItXVTdprbA3R_bZl290$>

My software is free, but my time generally not.

--

http://www.spatialys.com<https://urldefense.com/v3/__http:/www.spatialys.com__;!!ACWV5N9M2RV99hQ!KbMOD2u6nEacIP2ix07m6Y00zYu21fPOi8h2u_p-cjBCRSh9U8hYhTmK3txq5tv2LAvFBFXNfErVwdiaD9U8YKzOL5Qh$>

My software is free, but my time generally not.

--

http://www.spatialys.com<https://urldefense.com/v3/__http:/www.spatialys.com__;!!ACWV5N9M2RV99hQ!IPkRR1ZcwIotVYxg7JvUkznsl_LyC4GdbxYHcjQHjM4XR6sDe6iar5JIdCexcK9XtV-w_h_sJ6_vvtAF1OuFlZXNreE4$>

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/20240315/cb7e7d0d/attachment-0001.htm>


More information about the gdal-dev mailing list