之前遇到一个同学问一个问题,他在c源文件中使用bool变量,然后编译的时候提示bool没有定义。不知道怎么办。其实对于初学者来说,遇到的编译错误最多的就是某某变量或函数没有定义,或者有的时候函数有定义,编译过了但是在链接的时候提示找不到函数符号。这类错误其实都是非常好解决的。下面介绍一种在linux下编程如何更好更快的解决此类问题。
对linux稍微有点了解的同学估计都知道linux下有一个man命令,但是会用的人估计并不多。man分为很多部分:
1 用户命令, 可由任何人启动的。
2 系统调用, 即由内核提供的函数。
3 例程, 即库函数,比如标准C库libc。
4 设备, 即/dev目录下的特殊文件。
5 文件格式描述, 例如/etc/passwd。
6 游戏, 不用解释啦!
7 杂项, 例如宏命令包、惯例等。
8 系统管理员工具, 只能由root启动。
9 其他(Linux特定的), 用来存放内核例行程序的文档。
n 新文档, 可能要移到更适合的领域。
o 老文档, 可能会在一段期限内保留。
l 本地文档, 与本特定系统有关的。
要查属于哪一部分的,就用哪一部分的编号在命令之前。
比如,我现在用到了read函数,但是我不知道read需要保护什么头文件,read的参数都是什么样子的,我们当然可以上网去查read,那如果使用的linux系统,那就有一个非常快的方法,就是在linux的终端下输入命令
man 2 read
就会出现关于read函数的所有描述,包括所需要的头文件,函数原型,函数返回值等等。
再举一个例子,我们用到了log函数,这个函数不在标准c库中,那我怎么知道他需要链接那个库,需要保护什么头文件呢?
同样的,执行命令
man 3 log
就会出现log的所有信息。有环境的同学可以马上验证一下。
这里只是抛砖引玉的目的,更详细的使用,比如安装中文版man,安装更全的man等等可以从网上获取到。