Compiling C++ with g++

linux 下 g++ 编译程序时,-I, -L, -l 的作用

g++ -o compress  compress.cpp  \
  -I/home/include/ \
  -L/lib/ \
  -lz

1. -I (Capital i)

编译程序按照 -I 指定的路进去搜索头文件。

-I/home/include/ 表示将 -I/home/include/ 目录作为第一个寻找头文件的目录,寻找的顺序是:
/home/include/ –>/usr/include–>/usr/local/include

2. -L

表示:编译程序按照 -L 指定的路进去寻找库文件,一般的在 -L 的后面可以一次用 -l 指定多个库文件。

-L/lib/ 表示到 /lib/ 目录下找库文件

3. -l (lowercase L)

表示:编译程序到系统默认路进搜索,如果找不到,到当前目录,如果当前目录找不到,则到 $LD_LIBRARY_PATH 等环境变量置顶的路进去查找,如果还找不到,那么编译程序提示找不到库。

本例子使用的是gunzip库,库文件名是libz.so,库名是z。很容易看出,把库文件名的头lib和尾.so去掉就是库名了。