Linux开发 - 01- 头文件, 库

本文介绍Linux环境变量, C编译器, 头文件以及库的使用

Linux程序可以分为两类: executables 和Scripts. Executables程序可以直接运行,类似MS Windows的.exe文件,Scripts即脚本(Shell Script),包含执行其他程序的指令,类似MS Windows的.bat, .cmd 

1. PATH环境变量

Linux存放程序的几个标准目录

/bin:        Binaries, programs used in booting the system

/usr/bin:User   Binaries, standard programs available to users

/usr/local/bin:    Local binaries, programs specific to aninstallation 

Root用户的PATH可能还会指向两个存放系统管理程序的目录

/sbin

/usr/sbin 

其他可选的OS组件或者第三方程序安装在/opt目录下

/opt 

2. C编译器
cc, c89, gcc  

2.1 Hello World in C 

1 #include <stdio.h>
2  int main()
3 {
4 printf(“Hello World\n”);
5 exit(0);
6 } 

2.2 compile and run
$ gcc -o hello hello.c
$ ./hello
Hello World
$ 

3. 开发环境
/usr/bin         系统程序
/usr/local/bin or /opt 自己安装的程序
GCC compiler 通常在 /usr/bin or /usr/local/bin,  

3.1头文件
/usr/include及其子目录
/usr/include/X11
/usr/include/g++ 

如果头文件不在标准目录中,需要在编译时指明其目录
$ gcc -I/usr/openwin/include  fred.c 

Tips:如何查找你要的头文件
$grep EXIT_ *.h
...
stdlib.h:#define EXIT_FAILURE 1 /* Failing exit status. */
stdlib.h:#define EXIT_SUCCESS 0 /* Successful exit status. */ 

3.2 库文件
/lib
/usr/lib 

库文件命名规则:

  • lib开头
  • x 库类型(比如c表示C库, m表示数学库)
  • 文件类型(.a, .so) 静态库,共享库  

完整路径名查找库
$ gcc -o fred fred.c /usr/lib/libm.a  

只用库名查找库, 用-l选项指定库类型
$gcc -o fred fred.c –lm 

指定非标准库路径,用-L选项指定路径(大写),
$ gcc -o x11fred -L/usr/openwin/lib x11fred.c -lX11

相关推荐