链接 editline 并编译
如果你使用前面我们提供的命令行来编译这个程序,你会得到类似于下面的错误,因为在使用之前,你必须先在电脑上安装 editline
库。
fatal error: editline/readline.h: No such file or directory #include <editline/readline.h>
在 Mac 上,editline
包含在 Command Line Tools 中,安装方法我们在第二章有说明。安装完后,可能还是会出现头文件不存在的编译错误。这时,可以移除 #include <editline/history.h>
这行代码,再试一次。
在 Linux 上,可以使用 sudo apt-get install libedit-dev
来安装 editline
。在 Fedora 上,使用 su -c "yum install libedit-dev*"
命令安装。
一旦你安装好了 editline
,你可以再次编译试一下。然后将会得到如下的错误:
undefined reference to `readline'
undefined reference to `add_history'
这是因为没有将 editline
链接到程序中。我们需要使用 -ledit
标记来完成链接,用法如下:
cc -std=c99 -Wall prompt.c -ledit -o prompt
再次运行程序,就可以自由地编辑输入的文字了!
为什么我的程序还是不能编译?
在有些系统上,
editline
的安装、包含、链接的方式可能会有些许差别,请善用搜索引擎哦。
当前内容版权归 NoahDragon 译 或其关联方所有,如需对内容或内容相关联开源项目进行关注与资助,请访问 NoahDragon 译 .