VS2019下DLL类型引擎项目链接静态GLFW库出现链接错误求助
解决方案
- 首先添加
GLFW_STATIC预处理宏定义:
打开引擎项目的属性页,依次进入 C/C++ -> 预处理器 -> 预处理器定义,添加GLFW_STATIC条目,Debug和Release配置都要加。这是该类问题最常见的诱因:GLFW头文件默认会给函数添加__declspec(dllimport)修饰符适配动态链接场景,你使用静态编译的GLFW.lib时必须通过该宏通知头文件使用静态链接的函数声明,否则就会出现大量函数符号不匹配的链接错误。 - 验证编译配置一致性:
确认GLFW库和引擎项目的以下配置完全匹配:- 运行时库设置:GLFW已开启静态运行时,引擎项目也要对应设置Debug模式用
/MTd、Release模式用/MT,不能出现一方静态运行时、一方动态运行时的情况 - 目标架构:两者必须同为x86或者同为x64架构,不能交叉编译
- 运行时库设置:GLFW已开启静态运行时,引擎项目也要对应设置Debug模式用
- 确认链接配置正确:
检查引擎项目属性页 链接器 -> 常规 -> 附加库目录 中包含GLFW.lib的输出路径,同时 链接器 -> 输入 -> 附加依赖项 中已经添加GLFW.lib条目。 - 检查GLFW编译选项:
确认你编译GLFW静态库时没有开启功能裁剪开关,你调用的GLFW接口对应的功能模块没有被裁剪掉。
内容的提问来源于stack exchange,提问作者Omar Ghannou
相关产品推荐
相关产品推荐

