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

在CLion中使用assimp遇函数未定义引用错误求助

问题:Assimp库链接时出现未定义引用错误

错误信息

undefined reference to 'Assimp::Importer::ReadFile(char const*, unsigned int)'

当前CMake配置

find_package(assimp REQUIRED)

target_link_libraries(${PROJECT_NAME} assimp::assimp)

环境背景

Windows系统下使用CLion开发,通过vcpkg安装Assimp库,尝试过MinGW 6.0和11.0版本均未解决问题。


解决方案

  • 匹配vcpkg triplet与编译器版本
    确保vcpkg安装Assimp时使用的triplet与CLion当前调用的MinGW架构、编译类型完全一致。例如64位MinGW对应x64-mingw-static或x64-mingw-dynamic,32位对应x86-mingw-static/x86-mingw-dynamic。可通过指定triplet重新安装:

    # 以64位静态编译为例
    vcpkg install assimp:x64-mingw-static
    

    同时在CLion的CMake配置中指定vcpkg工具链文件:进入Settings -> Build, Execution, Deployment -> CMake,在CMake options中添加:

    -DCMAKE_TOOLCHAIN_FILE=[你的vcpkg根路径]/scripts/buildsystems/vcpkg.cmake
    
  • 统一项目与库的编译类型
    若项目为静态编译,确保vcpkg安装的是静态版Assimp;若为动态编译则对应动态版。安装时可明确指定:

    # 静态版
    vcpkg install assimp:x64-mingw-static
    # 动态版
    vcpkg install assimp:x64-mingw-dynamic
    

    检查项目CMake配置,避免BUILD_SHARED_LIBS等选项与Assimp的编译类型冲突。

  • 清理CMake缓存并重建
    删除项目目录下的cmake-build-*文件夹,或在CLion中点击File -> Reload CMake Project,彻底清理旧缓存后重新构建项目。

  • 手动指定库路径(备选方案)
    若自动链接失效,可手动指定Assimp的头文件路径和库文件:

    # 替换为你的vcpkg安装路径
    set(ASSIMP_INCLUDE_DIR "[vcpkg路径]/installed/x64-mingw-static/include")
    set(ASSIMP_LIBRARY "[vcpkg路径]/installed/x64-mingw-static/lib/libassimp.a")
    
    include_directories(${ASSIMP_INCLUDE_DIR})
    target_link_libraries(${PROJECT_NAME} ${ASSIMP_LIBRARY})
    

    根据实际triplet和编译类型调整路径中的x64-mingw-static,以及库文件后缀(静态库为.a,动态库为.dll.a)。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.06 07:42:36