从源码编译assimp后find_package找不到assimpTargets.cmake的问题
Assimp编译后find_package失败的排查方案
错误信息
CMake Error at libraries/include/assimp/generated/assimpConfig.cmake:27 (include): include could not find requested file: .../assimp/generated/assimpTargets.cmake CMake Error at libraries/include/assimp/generated/assimpConfig.cmake:32 (get_property): get_property could not find TARGET assimp::assimp. Perhaps it has not yet been created.
错误核心:assimpConfig.cmake尝试从当前目录加载assimpTargets.cmake,但实际该文件生成在CMakeFiles/Export/...路径下,导致find_package失败。
可能的操作错误点
- 未执行安装步骤:Assimp默认不会将导出的target文件直接放到
generated目录,必须运行make install(Linux/macOS)或者执行INSTALL目标(Windows),CMake才会将assimpTargets.cmake、assimpConfig.cmake等配置文件统一复制到指定路径。 - 未正确设置安装前缀:编译Assimp时如果没指定
CMAKE_INSTALL_PREFIX为./assimp/generated,安装步骤会把文件放到默认路径(如/usr/local),而非项目内的./assimp/generated目录。正确编译命令示例:cmake -S assimp-src -B assimp-build -DCMAKE_INSTALL_PREFIX=./assimp/generated cmake --build assimp-build --target install - 手动零散复制配置文件:如果仅手动把
assimpConfig.cmake复制到./assimp/generated,未同步复制assimpTargets.cmake及assimpTargets-*.cmake文件,会出现路径不匹配问题。必须通过CMake安装流程生成完整配置文件集合,不要手动零散复制。 - 关闭了EXPORT相关选项:部分Assimp版本需显式启用
ASSIMP_INSTALL选项(默认开启,但若手动关闭会导致安装步骤不生成targets文件),编译时可添加-DASSIMP_INSTALL=ON确保生成所需配置文件。
内容的提问来源于stack exchange,提问作者D. Cohen
相关产品推荐
相关产品推荐

