You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在C++的CMakeLists中链接PROJ库?安装libproj-dev后仍报错

解决CMake无法找到PROJ库配置文件的问题

你遇到的问题是因为通过apt-get install libproj-dev安装的PROJ,其CMake配置文件未被CMake默认搜索路径识别,以下是几种可靠的解决方式:

方法一:使用pkg-config查找PROJ(推荐)

Debian/Ubuntu系统下通过apt安装的库通常会提供.pc配置文件,用pkg-config可以更稳定地定位PROJ:

修改你的CMakeLists.txt为:

cmake_minimum_required(VERSION 3.28)
project(transform_crs)

set(CMAKE_CXX_STANDARD 17)

# 引入pkg-config模块
find_package(PkgConfig REQUIRED)
# 通过pkg-config查找PROJ库
pkg_check_modules(PROJ REQUIRED IMPORTED_TARGET proj)

add_executable(transform_crs main.cpp)

# 链接PROJ库
target_link_libraries(transform_crs PRIVATE PkgConfig::PROJ)

方法二:手动指定PROJ配置文件路径

先通过命令找到PROJ的CMake配置文件位置:

sudo find / -name "PROJConfig.cmake" -o -name "proj-config.cmake"

假设输出路径为/usr/lib/x86_64-linux-gnu/cmake/proj/,你可以在CMakeLists开头添加路径指定:

set(PROJ_DIR "/usr/lib/x86_64-linux-gnu/cmake/proj/")
find_package(PROJ REQUIRED CONFIG)

或者在执行cmake时通过参数传递路径:

cmake .. -DPROJ_DIR=/usr/lib/x86_64-linux-gnu/cmake/proj/

方法三:手动查找头文件和库(兼容旧版本PROJ)

如果你的PROJ版本较低(低于6.x),不支持CONFIG模式的find_package,可以直接手动定位头文件和库:

修改CMakeLists.txt为:

cmake_minimum_required(VERSION 3.28)
project(transform_crs)

set(CMAKE_CXX_STANDARD 17)

# 查找PROJ头文件和库文件
find_path(PROJ_INCLUDE_DIR NAMES proj.h)
find_library(PROJ_LIBRARY NAMES proj)

add_executable(transform_crs main.cpp)

# 添加头文件路径并链接库
target_include_directories(transform_crs PRIVATE ${PROJ_INCLUDE_DIR})
target_link_libraries(transform_crs PRIVATE ${PROJ_LIBRARY})

内容的提问来源于stack exchange,提问作者Happy_little_hamster

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.25 08:46:40