Ubuntu20.04 CLion运行PROJ6.3.1示例出现未定义引用报错如何解决
错误原因
该报错属于链接阶段缺失依赖库导致的问题:<proj.h>头文件仅提供了函数声明,可支撑编译阶段正常执行,但链接阶段需要指定PROJ的库文件才能找到函数的具体实现,因此出现未定义引用报错。
修复方案
手动编译修复
你当前的编译命令未指定PROJ链接参数,在原命令末尾添加-lproj即可:
g++ transformation.cpp -o transformation -lproj
如果执行后仍报错,先检查PROJ开发包是否安装完整:
- 检查系统中是否存在PROJ库文件:
ls /usr/lib/x86_64-linux-gnu/libproj* - 若未找到库文件,执行安装命令:
sudo apt install libproj-dev
CLion配置修复
CLion使用CMake管理项目,需要修改项目根目录下的CMakeLists.txt文件添加链接配置:
- 找到文件中
add_executable配置行,格式类似add_executable(你的项目名称 transformation.cpp) - 在该行之后添加PROJ依赖配置:
find_package(PROJ REQUIRED) target_link_libraries(你的项目名称 PRIVATE PROJ::proj)
- 点击CLion右上角的「Reload CMake Project」重新加载配置,再编译即可正常运行。
如果CMake提示找不到PROJ,可在CLion的「File - Settings - Build, Execution, Deployment - CMake」的「CMake options」栏添加参数:-DCMAKE_PREFIX_PATH=/usr(apt安装的PROJ默认路径为/usr,自定义编译安装的替换为自己的安装路径即可)
内容的提问来源于stack exchange,提问作者Bing
相关产品推荐
相关产品推荐

