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

readline()函数所属库查询及LNK1120链接错误解决求助

问题解决:LNK1120未解析外部符号_readline

关于readline()所属的库

readline()属于GNU Readline库,这是一个提供命令行编辑、历史记录功能的开源库,Windows平台的MSVC(VS默认使用的编译器)并不自带这个库,这就是你出现链接错误的核心原因。

两种解决方法

方法一:用标准库函数替代(无需额外安装)

如果不需要readline的高级功能(比如命令行历史、编辑),可以直接用C标准库<stdio.h>中的fgets()代替,示例代码:

#include <stdio.h>
#include <string.h> // 用于strcspn

int main() {
    char input_buf[256];
    printf("命令提示符> ");
    // 读取输入
    if (fgets(input_buf, sizeof(input_buf), stdin) != NULL) {
        // 去掉输入末尾的换行符
        input_buf[strcspn(input_buf, "\n")] = '\0';
        printf("你输入的内容:%s\n", input_buf);
    }
    return 0;
}

方法二:安装GNU Readline库并链接(保留readline功能)

方案1:切换到MinGW-w64编译器

MinGW-w64通常自带GNU Readline库,编译时只需在命令行添加链接参数:

gcc your_source.c -o your_program.exe -lreadline

方案2:在MSVC环境下通过vcpkg安装

  1. 先安装vcpkg包管理器,然后执行命令安装readline:
    vcpkg install readline:x64-windows
    
    (根据你的项目架构选择x86或x64)
  2. 在VS Code中配置编译器路径,确保能找到readline的头文件和库文件,编译时链接readline.lib。

错误原因说明

fatal error LNK1120: 1 unresolved externals是链接器错误,意味着编译器能找到readline()的函数声明(你可能已经包含了对应的头文件),但链接器找不到该函数的具体实现代码(即库文件)——因为MSVC默认不包含GNU Readline库。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.03 04:06:09