I am getting the following link errors when building my application in MSVC++: 1>gdal.lib(gdalallregister.cpp.obj) : error LNK2019: unresolved external symbol _GDALRegister_ECW referenced in function _GDALAllRegister@01>gdal.lib(gdalallregister.cpp.obj) : error LNK2019: unresolved external symbol _GDALRegister_JP2ECW referenced in function _GDALAllRegister@01>gdal.lib(gdalallregister.cpp.obj) : error LNK2019: unresolved external symbol _GDALRegister_MrSID referenced in function _GDALAllRegister@0 I am linking statically to GDAL built as a static library with vcpkg (which builds without error). I am using a custom x86-windows.cmake file with vcpkg, customized mainly to include MrSID and ECW functionality in GDAL. I have pasted the cmake text at the bottom of this email. >From what I can see in the GDAL code, it's behaving as if >gdal/frmts/mrsid/mrsiddataset.cpp (which contains the function >GDALRegister_MrSID) wasn't compiled into the library, yet the following code >in frmts/gdalallregister.cpp was compiled. #ifdef FRMT_mrsid GDALRegister_MrSID();#endif Can you help me understand how this could happen? What actually controls whether gdal/frmts/mrsid/mrsiddataset.cpp gets compiled into the library?
---x86-windows.cmake: set(VCPKG_TARGET_ARCHITECTURE x86)set(VCPKG_CRT_LINKAGE static)set(VCPKG_LIBRARY_LINKAGE static)set(VCPKG_BUILD_TYPE release)set(ENV{CMAKE_WINDOWS_KITS_10_DIR} "C:\\Program Files (x86)\\Windows Kits\\10")set(VCPKG_CMAKE_CONFIGURE_OPTIONS "-DCMAKE_WINDOWS_KITS_10_DIR=C:\\Program Files (x86)\\Windows Kits\\10")set(VCPKG_ENV_PASSTHROUGH CMAKE_WINDOWS_KITS_10_DIR) # CMAKE_CURRENT_LIST_DIR is the triplets directory# such as C:/Users/michael.katz/Documents/vcpkg/tripletsmessage( STATUS "\n\n-----------------------CMAKE_CURRENT_LIST_DIR = ${CMAKE_CURRENT_LIST_DIR}\n\n" ) if (PORT MATCHES "gdal") string( CONCAT x " \"-DMRSID_INCLUDE_DIR=${CMAKE_CURRENT_LIST_DIR}/../sdk/MrSID_DSDK-9.5.5.5244-win32-vc17/Raster_DSDK/include\"" " \"-DMRSID_LIBRARY=${CMAKE_CURRENT_LIST_DIR}/../sdk/MrSID_DSDK-9.5.5.5244-win32-vc17/Raster_DSDK/lib/lti_dsdk.lib\"" " \"-DGDAL_USE_MRSID=ON\"" " \"-DFRMT_mrsid=ON\"" " \"-DECW_INCLUDE_DIR=${CMAKE_CURRENT_LIST_DIR}/../sdk/ecw/Hexagon/ERDAS_ECW_JPEG_2000_SDK_5.5.0/Desktop_Read-Only/include\"" " \"-DECW_LIBRARY=${CMAKE_CURRENT_LIST_DIR}/../sdk/ecw/Hexagon/ERDAS_ECW_JPEG_2000_SDK_5.5.0/Desktop_Read-Only/lib/vc141/Win32/NCSEcw.lib\"" " \"-DGDAL_USE_ECW=ON\"" " \"-DFRMT_ecw=ON\"" ) set(VCPKG_CMAKE_CONFIGURE_OPTIONS "${VCPKG_CMAKE_CONFIGURE_OPTIONS} ${x}" ) set(VCPKG_CXX_FLAGS "${VCPKG_CXX_FLAGS} -DFRMT_mrsid=ON") set(VCPKG_C_FLAGS "${VCPKG_C_FLAGS} -DFRMT_mrsid=ON") set(VCPKG_CXX_FLAGS "${VCPKG_CXX_FLAGS} -DFRMT_ecw=ON") set(VCPKG_C_FLAGS "${VCPKG_C_FLAGS} -DFRMT_ecw=ON")endif() message( STATUS "\n\n-----------------------VCPKG_CMAKE_CONFIGURE_OPTIONS = ${VCPKG_CMAKE_CONFIGURE_OPTIONS}\n\n" ) message( STATUS "\n\n-----------------------FEATURES = ${FEATURES}\n\n" )
_______________________________________________ gdal-dev mailing list gdal-dev@lists.osgeo.org https://lists.osgeo.org/mailman/listinfo/gdal-dev