首页 > 解决方案 > CMake 和 Assimp 的问题

问题描述

我有最新的 assimp 源代码(5.0.1 版本),我用 CMake 构建它并使用cmake --install. 现在我正在尝试将它添加到我的 CMake 项目中:find_package(Assimp REQUIRED Assimp)- 此时它配置良好。当我尝试添加时问题开始了

target_link_libraries(
    MyProj PRIVATE
    Assimp::Assimp
)

我收到以下错误:

[cmake]   target "MyProj" links to target "Assimp::Assimp" but the target
[cmake]   was not found.  Perhaps a find_package() call is missing for an IMPORTED
[cmake]   target, or an ALIAS target is missing?

经过一番研究,我试过target_link_libraries(MyProj PRIVATE ${ASSIMP_LIBRARIES})了,这次我遇到了编译错误,当我显示 ${ASSIMP_LIBRARIES} 变量(命令:)的值时,message("${ASSIMP_LIBRARIES}")我得到:assimp-vc142-mt.dll- 它包含 .dll 名称,即使没有完整路径。assimp有很多麻烦,有人可以提出解决方案吗?

标签: c++cmake

解决方案


在没有任何 assimp 知识的情况下,我认为您想要的是:

target_link_libraries(MyProj PRIVATE assimp::assimp)

据我所知,CMake 目标名称区分大小写,并且在此处使用小写aassimp::assimp创建别名目标。


推荐阅读