“-I”(大写i):表示包含头文件; “-L”(大写l):表示库文件目录; “-l”(小写l):表示链接库文件(包括动态库文件,静态库文件); 下面做个记录: 例: gcc -o hello hello.c -I /home/hello/include -L /home/hello/lib -lworld 上面这句表示在编译hello.c时: -I /home/hello/include表示将/home/h...
需要注意的是,-I和-L参数的使用方式略有不同。-I参数通常会出现在编译命令中,例如gcc -I/path/to/headers ...,而-L参数通常会出现在链接命令中,例如gcc -o program program.o -L/path/to/libraries -lfoo。 总之,-I和-L参数的主要区别在于它们分别用于指定头文件和库文件的搜索路径,分别用于编译和链接...
gcc -o *.c -fPIC -c *.c //-fPIC指明生成和地址无关的目标文件 gcc -o libtest.so -shared *.o //在连接过程中指定-shared,即生成共享形式的目标文件 gcc -o target -L./lib -ltest -Wl,-rpath=./lib//-Wl,-rpath=./lib指定运行时的库文件路径 生成静态库: gcc -o *.o -c *.c ar ...
gcc -o hello hello.c -I /home/hello/include -L /home/hello/lib -lworld 上⾯这句表⽰在编译hello.c时:-I /home/hello/include表⽰将/home/hello/include⽬录作为第⼀个寻找头⽂件的⽬录,寻找的顺序是:/home/hello/include-- >/usr/include-->/usr/local/include -L /home/hello/...
gcc main.c -o main#最终生成的是main.exe可执行文件clean: rm main#通过make clean 执行clean语句 通过make clean语句执行clean命令,清除所有的.o文件 直接make默认执行第一个指令 all: test makefile的变量(宏) 自定义变量 系统环境变量 make 运行时的系统环境变量可以在 make 开始运行时被载入到 Makefile 文...
在Makefile中指定依赖的动态库,需要使用-l参数来指定依赖的库名称。下面是一个示例: CC=gcc CFLAGS=-Wall -Werror LDFLAGS=-L/path/to/library -lname_of_library all: myprogram myprogram: myprogram.o $(CC) $(CFLAGS) -o $@ $^ $(LDFLAGS) myprogram.o: myprogram.c $(CC) $(CFLAGS) -c ...
2. 编译:gcc -S main.ii,得到名为main.s(默认名)的汇编文件。 3. 汇编:gcc -c main.s,得到名为main.o(obj)(默认名)的二进制文件。 4. 链接:gcc -lstdc++ main.o,得到名为a.out的可执行文件。 这样也就可以说明为什么引言部分,Makefile 第二种写法的好处了,当有的文件没有改动,已经是二进制文件...
首先我们先看一个使用条件语句的Makefile例子;对变量“CC”进行判断,值如果是“gcc”那么在进行程序连接时使用库“libgnu.so”或者“libgnu.a”,否则不链接任何库。我们Makefile中的条件判断部分如下: …… libs_for_gcc = -lgnu normal_libs = …… ...
三、编译器gcc/g++ gcc用来对C语言文件编译,g++用来对c++文件编译,选项几乎是一样的,下面以gcc为例。 1.从源文件到可执行文件 从一个.c为后缀的源文件到一个.exe为后缀的可执行文件需要经过下面四个步骤。 (1)预处理(-E) 主要包括:头文件展开、去注释、宏替换、条件编译。 在Linux中可以通过gcc的–E选项...
一般(CC) 指的就是gcc编译器,对于CFLAGS,我们可以CFLAGS="-DDEBUG " 那么在跟(CC)一起用时候,就可以将"-DDEBUG "这个编译参数加上了,-I$(DBM_INC_PATH) -l就是要链接的库文件,那么后面这个变量,肯定就包含了你的... 分析总结。 一般cc指的就是gcc编译器对于cflags我们可以cflagsddebug那么在跟cc一...