CLion,Qt项目配置GDAL库
CMakeList.txt
# Minimum CMake version required
cmake_minimum_required(VERSION 3.28)
# Project name
project(untitled)
# Set build directory
set(BUILD_DIR ${CMAKE_CURRENT_SOURCE_DIR}/bin)
set(CMAKE_RUNTIME_OUTPUT_DIRECTORY ${BUILD_DIR})
# Set C++ standard
set(CMAKE_CXX_STANDARD 17)
# Enable Qt's automatic features
set(CMAKE_AUTOMOC ON)
set(CMAKE_AUTORCC ON)
set(CMAKE_AUTOUIC ON)
# Set Qt installation path
set(CMAKE_PREFIX_PATH D:/Qt/5.15.2/msvc2019_64)
# Find required Qt components
find_package(Qt5 COMPONENTS
Core
Gui
Widgets
REQUIRED)
find_package(OpenMP REQUIRED)
# Include GDAL headers
include_directories(./common/include/gdal)
# Link GDAL libraries
link_directories(./common/lib)
link_libraries(gdal_i)
# Add executable target
add_executable(untitled main.cpp)
# Link Qt and GDAL libraries to the target
target_link_libraries(untitled
Qt5::Core
Qt5::Gui
Qt5::Widgets
gdal_i
OpenMP::OpenMP_CXX
)
# Windows-specific settings for copying Qt DLLs
if (WIN32 AND NOT DEFINED CMAKE_TOOLCHAIN_FILE)
set(DEBUG_SUFFIX)
if (MSVC AND CMAKE_BUILD_TYPE MATCHES "Debug")
set(DEBUG_SUFFIX "d")
endif ()
set(QT_INSTALL_PATH "${CMAKE_PREFIX_PATH}")
if (NOT EXISTS "${QT_INSTALL_PATH}/bin")
set(QT_INSTALL_PATH "${QT_INSTALL_PATH}/..")
if (NOT EXISTS "${QT_INSTALL_PATH}/bin")
set(QT_INSTALL_PATH "${QT_INSTALL_PATH}/..")
endif ()
endif ()
if (EXISTS "${QT_INSTALL_PATH}/plugins/platforms/qwindows${DEBUG_SUFFIX}.dll")
add_custom_command(TARGET ${PROJECT_NAME} POST_BUILD
COMMAND ${CMAKE_COMMAND} -E make_directory
"$<TARGET_FILE_DIR:${PROJECT_NAME}>/plugins/platforms/")
add_custom_command(TARGET ${PROJECT_NAME} POST_BUILD
COMMAND ${CMAKE_COMMAND} -E copy
"${QT_INSTALL_PATH}/plugins/platforms/qwindows${DEBUG_SUFFIX}.dll"
"$<TARGET_FILE_DIR:${PROJECT_NAME}>/plugins/platforms/")
endif ()
foreach (QT_LIB Core Gui Widgets)
add_custom_command(TARGET ${PROJECT_NAME} POST_BUILD
COMMAND ${CMAKE_COMMAND} -E copy
"${QT_INSTALL_PATH}/bin/Qt5${QT_LIB}${DEBUG_SUFFIX}.dll"
"$<TARGET_FILE_DIR:${PROJECT_NAME}>")
endforeach (QT_LIB)
endif ()
菜狗