私のプログラムをWindowsで実行しようとしています。 GDALは、GISデータをロードするためのライブラリです。それはコンパイルし、LinuxとmacOSの両方でうまくリンクします。私はMinGWのでCMakeのを使用していると私は、このようなエラーのリンクに実行している:私はVS2017でGDALをコンパイルし、私は私のcmakeのファイルに指定していますどこがインストールされていることを確認したGDALがリンクしていません
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*)'
を。ここに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})
私はちょっと頭がおかしくなりました。私は無駄なくdllとのリンクを試みました。何か案は?
ありがとう、私はこれを少し後に分かりましたが、私が投稿した質問を忘れました。 – BlueSpud