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

Visual Studio编译C代码报LNK2019未解析外部符号test_encrypt错误

你遇到的unresolved external symbol属于链接阶段错误,核心原因是编译器找到了函数声明,但是链接器找不到对应函数的实现代码,常见原因和解决方法如下:

  • 最常见原因:cipher.c没有被添加到当前Visual Studio项目的编译序列中
    你只编译运行了main.c,VS没有感知到cipher.c的存在,自然不会编译它的代码,导致链接时找不到test_encrypt的实现。
    解决方法:打开VS顶部的「解决方案资源管理器」,在你的项目下的「源文件」分组中检查是否存在cipher.c:
    • 如果不存在:右键项目名称 → 选择「添加」→「现有项」,选中你本地的cipher.c文件添加到项目即可
    • 如果已存在:右键cipher.c → 选择「属性」,确认「常规」栏目下:
      1. 「从生成中排除」选项的值为「否」
      2. 「项类型」选项的值为「C/C++ 编译器」
  • 其他排查点:
    • 检查函数名是否完全一致,C语言区分大小写,声明和定义的函数名拼写、参数列表必须完全匹配
    • 不要将cipher.c错误设置为头文件加入项目,否则不会参与编译

额外补充代码潜在问题:你当前main.c里的buffer变量没有实际定义就直接调用,修复完链接问题后编译会报未定义变量的错误,需要先完成注释中提到的读文件逻辑,正确定义并赋值buffer变量后再传入函数。同时直接用printf(buffer)存在格式字符串漏洞,建议写成printf("%s", buffer)更安全。

内容的提问来源于stack exchange,提问作者E-Lian

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.28 13:15:05