c/c++ 在linux 环境编译下,在编译配置处理上某些参数的中文理解.
-shared : 连接器选项...告诉连接器产生一个共享目标文件. 一旦用这个选项,其他共享目标文件选择也是一样的,要么-fpic或-fPIC

-fpic:编译器就输出位置无关目标码, 16k,32k范围转移.
-fPIC:编译器就输出位置无关目标码, 大范围转移,现在都用这个.

-I dir: Adds dir to the list of directories searched for header files.
增加头文件查找的路径
-L dir Adds dir to the list of directories searched for library files.
增加库文件查找的路径.

-rpath libdir: Specifies that a library you are linking will eventually be installed in the
directory libdir.

-R libdir: Adds the specified directory (libdir) to the runtime path of the programs and
libraries that you are linking.

pkg-config的用法
pkg-config用来获得已经安装的库的信息.通常用来编译和链接一个或多个库.
pkg-config的一个常用用法是:
    cc program.c `pkg-config --cflags --libs glib-2.0`
  • --cflags 用来生成编译那个库所需要的compile flags
  • --libs 用来生成link flags
上例的输出结果是

sunway@3[~]$ pkg-config --cflags --libs glib-2.0
-I/usr/include/glib-2.0 -I/usr/lib/glib-2.0/include  -lglib-2.0

MYINCLUDE = $(shell pkg-config --cflags gtk+-2.0 libpng xft)