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

GLFW链接报错unresolved external symbol __imp_strncpy问题求助

问题根源

这些带__imp_前缀的未解析外部符号报错,核心原因是项目之间的C运行时库(CRT)链接方式不匹配:
你的引擎和沙箱项目都在Windows配置下开启了staticruntime "On",也就是静态链接CRT,但GLFW的Premake脚本没有指定静态运行时,默认使用动态CRT编译,两者符号规则不匹配导致链接失败。

修复步骤
  • 修改GLFW的Premake脚本,添加静态运行时声明,和主项目配置对齐:
project "GLFW"
    kind "StaticLib"
    language "C"
    -- 新增:和主项目匹配,开启静态运行时
    staticruntime "On"

    -- 以下原有内容保持不变
    targetdir ("bin/" .. outputdir .. "/%{prj.name}")
    objdir ("bin-int/" .. outputdir .. "/%{prj.name}")

    files
    {
        "include/GLFW/glfw3.h",
        "include/GLFW/glfw3native.h",
        "src/glfw_config.h",
        "src/context.c",
        "src/init.c",
        "src/input.c",
        "src/monitor.c",
        "src/vulkan.c",
        "src/window.c"
    }
    -- 剩余原有配置全部保留即可
  • 清理之前生成的编译缓存(删除bin、bin-int文件夹下的所有内容),重新生成项目文件并全量编译即可。
可选验证项

如果修改后仍有报错,可以确认以下配置是否正常:

  • 所有项目的Debug/Release配置对应正确,Debug模式使用Debug版本静态CRT,Release模式使用Release版本静态CRT,你现有GLFW配置中的runtime "Debug"/runtime "Release"声明已经满足要求,无需额外修改
  • 没有混合x86和x64的编译输出,你工作区已经指定architecture "x64",这部分配置无问题
  • GLFW源码完整,你现有配置中已经包含了Windows平台需要的全部源文件,没有遗漏

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.23 23:15:01