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选项用于阻止编译器创建一个完成的程序。

    

       

原文地址:https://www.cnblogs.com/qiufenghui/p/2572120.html