使用Premake构建作为子模块的Assimp时头文件存在却报无法包含错误
问题根源
你配置的Assimp项目Premake包含目录缺失路径,导致内部相对路径引用头文件失败:
报错的D3MFExporter.cpp中使用contrib/zip/src/zip.h相对路径做包含,当前你的Assimp Premakeincludedirs列表中既没有添加Assimp根目录作为搜索路径,也没有单独添加zip组件的包含路径,编译器无法定位到对应头文件。
修复方法
修改Assimp项目的Premake配置,在includedirs列表中补充对应的路径,二选一即可:
- 通用修复(推荐,避免后续其他Assimp内部组件出现同类错误):添加Assimp根目录到包含路径
includedirs { ".", -- 新增本行,将Assimp根目录加入头文件搜索列表 "include", "code", "code/Common", "code/PostProcessing", "code/AssetLib", "contrib/irrXML", "contrib/rapidjson/include", "contrib/unzip" }
- 针对性修复:仅添加zip组件的包含路径
includedirs { "include", "code", "code/Common", "code/PostProcessing", "code/AssetLib", "contrib/irrXML", "contrib/rapidjson/include", "contrib/unzip", "contrib/zip/src" -- 新增本行 }
修改完成后重新执行Premake生成解决方案,再重新编译即可解决报错。
内容的提问来源于stack exchange,提问作者LuchoSuaya
相关产品推荐
相关产品推荐

