这可能是一个非常愚蠢的错误,但在网络上找不到任何参考。
我尝试编译这个最低限度的 readline 示例:
#include <stdio.h>
#include <malloc.h>
#include <readline/readline.h>
void main(void){
char *line;
while( 1==1 ){
line=readline("enter text>");
printf("text: %s <\n",line);
free(line);
}
}
Run Code Online (Sandbox Code Playgroud)
得到了这个:
$>cc -lreadline read_test.c
/tmp/cc6JYBvf.o: In function `main':
read_test.c:(.text+0xe): undefined reference to `readline'
collect2: error: ld returned 1 exit status
Run Code Online (Sandbox Code Playgroud)
相同的代码在我的笔记本 Ubuntu 10.04 上完美编译。
也尝试过:
cc -L/usr/lib/x86_64-linux-gnu -lreadline read_test.c
Run Code Online (Sandbox Code Playgroud)
或者
cc -L/usr/lib/x86_64-linux-gnu -lreadline -lncurses read_test.c
Run Code Online (Sandbox Code Playgroud)
和其他几个带有 -m64 或 --static 的变体
我已经安装了 libreadline6-dev 和 libreadline5-dev。
提前致谢。
拉洛