Linux程序设计学习笔记
1.2.4开发系统引导
采用不同语言在linux下编程,头文件和库文件管理是绕不开的话题,觉得这章写的很绕,特此总结下!
1.头文件
对c语言来说,Ubuntu头文件几乎全部位于/usr/include目录及其子目录中,而对于其他编程系统(这里可以理解为采用其他编程语言吧!)的头文件会存在对于的目录下,并且会自动对头文件进行搜索,例如GNU C++的头文件位于 /usr/include/c++下。
(1)可以使用-I标志来包含保存在子目录或非标准位置中的头文件(可能是自定义头文件,存放于其他文件夹中的,需要时可以添加进来!)
gcc-I/usr/openwin/include fred.c //fred.c文件中包含的头文件也可以在/usr/openwin/include目录中查找!
同时如果不清楚头文件中包含的内容,可以用grep来搜索特定定义和函数原型的头文件
2.库文件
库文件其实感觉就是已经编写好的代码,编译时嵌入程序中就可以了!标准系统库文件一般存放于/usr/lib和/lib,C语言编译器默认搜索c语言库!
库文件命名也很有意思,基本以lib开头,随后部分指明是什么库(c代表C语言库,m代表数学库,例如libm.a代表数学库)!
库文件类型: .a代表传统的静态函数库,.so代表共享函数库
库文件添加方式:1.给出完整的库文件路径 2.-l标志告诉编译器要搜索的库文件.
gcc -o fred fred.c /usr/lib/libm.a or gcc -o fred fred.c -lm //给出完整路径方式可能更好,因为-l标志搜索的是环境变量中设置的库文件路径,可能会不全的哦!
如果标准库文件中没有含有该库文件,可以使用-L标志添加库搜索路径.
gcc -o x11fred -L/usr/openwin/lib x11fred.c -lX11 //这个例子比较全面,既有增加搜索路径,也有默认路径搜索!
3.静态库文件创建
静态库(archive),翻译为归档文件,因此文件名以.a结尾。
创建静态库文件使用ar程序和gcc -c命令进行编译,-c选项用于阻止编译器创建一个完成的程序。
作者:PHF
博文主要记载工作中遇到的相关问题的解决方案,注重对问题和解决方案的详细描述,同时添加大量的截图方便遇到问题的读者操作实践!
感谢您的阅读,如果您对我的博客所讲述的内容有兴趣,请继续关注我的后续博客.
本文版权归作者和博客园共有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接,否则保留追究法律责任的权利.