J'essaie de faire fonctionner mon programme sous Windows. Cela dépend de GDAL, une bibliothèque pour charger les données SIG. Il compile et relie bien sur Linux et macOS. J'utilise CMake avec MinGW et je suis en cours d'exécution en reliant des erreurs comme ceci:GDAL non lié
undefined reference to `GDALRasterBand::RasterIO(GDALRWFlag, int, int, int, int, void*, int, int, GDALDataType, long, long, GDALRasterIOExtraArg*)'
CMakeFiles\Routes.dir/objects.a(elevation.cpp.obj): In function `ZN13ElevationData9calcStatsEv':
C:/Users/Logan/Documents/Routes/src/elevation/elevation.cpp:138: undefined reference to `GDALDataset::GetRasterXSize()'
C:/Users/Logan/Documents/Routes/src/elevation/elevation.cpp:139: undefined reference to `GDALDataset::GetRasterYSize()'
CMakeFiles\Routes.dir/objects.a(elevation.cpp.obj): In function `ZN13ElevationData17createOpenCLImageEv':
C:/Users/Logan/Documents/Routes/src/elevation/elevation.cpp:206: undefined reference to `GDALRasterBand::RasterIO(GDALRWFlag, int, int, int, int, void*, int, int, GDALDataType, long, long, GDALRasterIOExtraArg*)'
Je compilé GDAL avec VS2017 et je l'ai vérifié qu'il est installé où je suis dans mon dossier spécifiant CMake. Voici les parties pertinentes du CMakeLists.txt:
IF (WIN32)
message(STATUS "Compiling for Windows")
set(GDAL_LIBRARY "C:/warmerda/bld/lib/gdal_i.lib")
set(GDAL_INCLUDE_DIR "C:/warmerda/bld/include/")
find_package(OpenCL REQUIRED)
include_directories(${OpenCL_INCLUDE_DIRS})
ELSE()
...
message(STATUS ${GDAL_LIBRARY})
target_link_libraries(Routes ${GDAL_LIBRARY} ${OpenCL_LIBRARIES})
Je ne presque jamais le développement sur Windows, donc je suis un peu coincé. J'ai essayé de lier contre la DLL aussi sans succès. Des idées?
Merci, j'ai compris cela après un petit moment, mais j'ai oublié la question que j'ai postée. – BlueSpud