Windows에서 프로그램을 실행하려고합니다. GDAL은 GIS 데이터를로드하는 라이브러리입니다. 그것은 리눅스와 macOS 모두에서 컴파일되고 잘 링크됩니다. 저는는 MinGW와 CMake를 사용하고 있는데 나는이 같은 연결 오류로 실행 해요 : VS2017와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*)'
I 컴파일 GDAL을하고 난 내 CMake 파일에 지정하고 어디가 설치되어 있는지 확인했습니다. 다음은 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