添加mod-gain-honor-guard模块编译worldserver时遇LNK1181错误求助
解决思路
针对编译worldserver时出现的cannot open input file '..\..\..\modules\RelWithDebInfo\modules.lib'错误(仅添加mod-gain-honor-guard模块后触发),可按以下步骤排查:
检查模块CMake配置
打开mod-gain-honor-guard模块的CMakeLists.txt,确认:- 输出路径设置是否正确,是否将模块库文件指向核心的
modules/RelWithDebInfo目录; - 库类型声明(STATIC/SHARED)是否符合核心要求,有没有错误的路径硬编码。
- 输出路径设置是否正确,是否将模块库文件指向核心的
验证模块编译产物
前往模块的编译目录(通常是build/modules/mod-gain-honor-guard/RelWithDebInfo),查看是否生成了对应lib文件:- 如果未生成,说明模块本身编译失败,查看模块编译日志定位具体错误;
- 如果生成了但路径不符,调整模块CMake配置中的
CMAKE_ARCHIVE_OUTPUT_DIRECTORY参数,将输出目录对齐到核心期望的modules/RelWithDebInfo。
清理缓存重新构建
删除整个build目录,重新运行CMake生成构建文件,先单独编译mod-gain-honor-guard模块,确认其编译成功并生成正确的lib文件后,再编译worldserver。缓存的旧构建信息可能导致路径匹配异常。核对模块目录结构
确认mod-gain-honor-guard模块放置在核心modules目录的正确层级,没有嵌套错误。对比之前可成功编译的单个模块的目录结构,排查是否存在目录层级差异导致的路径计算错误。确认构建类型一致性
检查当前编译worldserver使用的构建类型是否为RelWithDebInfo,与错误路径中的构建类型一致。若之前切换过构建类型,需重新生成CMake配置,避免路径不匹配。
内容的提问来源于stack exchange,提问作者Cromix
相关产品推荐
相关产品推荐

