@CrazyHenry
2018-05-19T11:33:50.000000Z
字数 1352
阅读 1403
xxxxLinuxTools
gcc -O -c sin.c # 执行后生成sin.o目标文件# 一般在链接生成可执行文件的时候,才需要-L和-I参数# -L/usr/lib -L/lib 为默认的链接函数库查找路径(.so和.a)# -I/usr/include 为默认的include函数库(#include <stdio>)# -lm 表示链接的函数库为--libm.so或者libm.a# -O表示根据环境优化编译过程gcc sin.c -lm -L/usr/lib -L/lib -I/usr/include #执行后生成a.out可执行文件gcc -Wall -o sin sin.c -lm -L/usr/lib -L/lib -I/usr/include #执行后生成sin可执行文件。由于sin.c只有一个文件,所以可以直接-o。-Wall表示编译更加严谨gcc -O -c Hello.c Thank.c #生成Hello.o Thank.ogcc -Wall -o HelloThank Hello.o Thank.o -lm -L/usr/lib -L/lib -I/usr/include #生成HelloThank可执行文件

需要main.o value.o cos_compute.o sinc_compute.o四个文件来做链接
方式1:
main: main.o value.o cos_compute.o sinc_compute.o<tab> gcc -o main main.o value.o cos_compute.o sinc_compute.o -lmclean:<tab> rm -rf main main.o value.o cos_compute.o sinc_compute.o
方式2:
LIBS = -lmOBJS = main.o value.o cos_compute.o sinc_compute.oCFLAGS = -Wallmain: ${OBJS}<tab> gcc -o $@ ${OBJS} ${LIBS} # $@表示当前的target即 mainclean:<tab> rm -rf main ${OBJS}

make clean main CFLAGS="-Wall" #第一优先级使用的CFLAGSmake clean main #使用makefile里的变量
其他环境变量:
CPPFLAGS -I标记非标准头文件存放路径 # includeLDFLAGS -L标记非标准函数库存放路径 # .so或者.amake -f myMakefile \LDFLAGS='-L/var/xxx/lib -L/opt/mysql/lib' \CPPFLAGS='-I/usr/local/libcom/include -I/usr/local/libpng/include'
./configure --help #检查有什么配置参数, prefix表示安装路径./configure --prefix=/usr/local/ntp \--enable-all-clocks --enable-parse-clocks #配置并且生成makefile,安装到usr/local/ntp目录下make clean; makemake install

需要将/usr/local/ntp/bin添加到PATH环境变量中,才能使用这个可执行文件。
