Linux下面如何进行C语言编程技术教程_Linux服务器维护_黑客防线网安服务器维护基地--Powered by WWW.RONGSEN.COM.CN

Linux下面如何进行C语言编程技术教程

作者:黑客防线网安LINUX维护基地 来源:黑客防线网安linux教程网 浏览次数:0

本篇关键词:Linux语言编程
黑客防线网安网讯:这篇文章介绍在LINUX下进行C语言编程所需要的基础知识,在这篇文章当中,我们将会学到以下内容:源程序编译、Makefile的编写、程序库的链接、程序的调试、头文件和系统求助。

 
出现这个错误是因为编译器找不到log的具体实现,虽然我们包括了正确的头文件,但是我们在编译的时候还是要连接确定的库。在Linux下,为了使用数学函数,我们必须和数学库连接,为此我们要加入 -lm 选项。gcc -o temp temp.c -lm这样才能够正确的编译,也许有人要问,前面我们用printf函数的时候怎么没有连接库呢?是这样的,对于一些常用的函数的实现,gcc编译器会自动去连接一些常用库,这样我们就没有必要自己去指定了。有时候我们在编译程序的时候还要指定库的路径,这个时候我们要用到编译器的 -L选项指定路径。比如说我们有一个库在 /home/hoyt/mylib下,这样我们编译的时候还要加上 -L/home/hoyt/mylib,对于一些标准库来说,我们没有必要指出路径。只要它们在起缺省库的路径下就可以了,系统的缺省库的路径/lib /usr/lib /usr/local/lib 在这三个路径下面的库,我们可以不指定路径。
 
还有一个问题,有时候我们使用了某个函数,但是我们不知道库的名字,这个时候怎么办呢?对于这个问题我也不知道答案,我只有一个傻办法,首先我到标准库路径下面去找看看有没有和我用的函数相关的库,我就这样找到了线程(thread)函数的库文件(libpthread.a)。 当然如果找不到,只有一个笨方法,比如我要找sin这个函数所在的库,就只好用 nm -o /lib/*.so|grep sin>~/sin 命令,然后看~/sin文件,到那里面去找了,在sin文件当中,我会找到这样的一行libm-2.1.2.so:00009fa0 W sin 这样我就知道了sin在 libm-2.1.2.so库里面,我用 -lm选项就可以了(去掉前面的lib和后面的版本标志,就剩下m了所以是 -lm)。
 
4、程序的调试
 
我们编写的程序不太可能一次性就会成功的,在我们的程序当中,会出现许许多多我们想不到的错误,这个时候我们就要对我们的程序进行调试了。
 
最常用的调试软件是gdb.如果你想在图形界面下调试程序,那么你现在可以选择xxgdb,记得要在编译的时候加入 -g选项,关于gdb的使用可以看gdb的帮助文件。由于我没有用过这个软件,所以我也不能够说出如何使用。不过我不喜欢用gdb,跟踪一个程序是很烦的事情,我一般用在程序当中输出中间变量的值来调试程序的。当然你可以选择自己的办法,没有必要去学别人的,现在有了许多IDE环境,里面已经自己带了调试器。
 
5、头文件和系统求助
 
有时候我们只知道一个函数的大概形式,不记得确切的表达式,或者是不记得着函数在那个头文件进行了说明,这个时候我们可以求助系统。
 
比如说我们想知道fread这个函数的确切形式,我们只要执行 man fread系统就会输出着函数的详细解释的,和这个函数所在的头文件说明了。如果我们要write这个函数的说明,当我们执行man write时,输出的结果却不是我们所需要的。因为我们要的是write这个函数的说明,可是出来的却是write这个命令的说明。为了得到write的函数说明我们要用 man 2 write,2表示我们用的write这个函数是系统调用函数,还有一个我们常用的是3表示函数是C的库函数。
    黑客防线网安服务器维护方案本篇连接:http://www.rongsen.com.cn/show-19010-1.html
网站维护教程更新时间:2012-09-23 14:04:01  【打印此页】  【关闭
我要申请本站N点 | 黑客防线官网 |  
专业服务器维护及网站维护手工安全搭建环境,网站安全加固服务。黑客防线网安服务器维护基地招商进行中!QQ:29769479

footer  footer  footer  footer