编译选项含义——CFLAGS和LDFLAGS
在编译一些开源包的时候,我们经常会遇到CFLAGS
、DFLAGS
等一些变量,这里我们简单介绍一下,在此做个记录,以便于后续查阅。
1. CFLAGS 和CXXFLAGS区别
- CFLAGS通常表示用于C编译器的选项。比如指定头文件(.h文件)的路径
CFLAGS=-I/usr/include -I/path/include
通过上面就把相应目录追加到了头文件的查找路径中。
- CXXFLAGS表示用于C++编译器的选项
2. LDFLAGS和LIBS区别
LDFLAGS是选项,LIBS是要链接的库。
LDFLAGS = -L/var/xxx/lib -L/opt/mysql/lib LIBS = -lmysqlclient -liconv
3. 命令行
建议在gcc命令行中显式的指定这些参数,而不是export
的方式。
# gcc ${CFLAGS} main.c
再比如:
# ./configure --prefix=install_dir CFLAGS="-I/home/ivanzz1001/3rd/openssl/include" LDFLAGS="-L/home/ivanzz1001/3rd/openssl/lib"
[参看]