Linux学习笔记——例说makefile 增加系统共享库
#include <stdio.h> #include <math.h> #define PI 3.14159265 int main(void) { double angle = 30.00 ; printf("sin(%.2lf)=%.2lf\n", angle, sin(angle * PI / 180)); return 0; }
# 指令编译器和选项 CC = gcc CFLAGS = -Wall -std=gnu99 # 可执行文件 TARGET=test # C文件 SRCS = test.c # 目标文件 OBJS = $(SRCS:.c=.o) # 库文件 DLIBS = -lm # 链接为可执行文件 $(TARGET):$(OBJS) # @echo TARGET:$@ # @echo OBJECTS:$^ [tab]$(CC) -o $@ $^ $(DLIBS) clean: [tab]rm -rf $(TARGET) $(OBJS) # 连续动作,请清除再编译链接,最后执行 exec:clean $(TARGET) [tab]@echo 开始执行 [tab]./$(TARGET) [tab]@echo 执行结束 # 编译规则 $@代表目标文件 $< 代表第一个依赖文件 %.o:%.c [tab]$(CC) $(CFLAGS) -o $@ -c $<
libm.so.6 => /lib/x86_64-linux-gnu/libm.so.6 (0x00007ffe55b18000)
libc.so.6 => /lib/x86_64-linux-gnu/libc.so.6 (0x00007ffe55750000)
/lib64/ld-linux-x86-64.so.2 (0x00007ffe55e38000)
gcc -Wall -std=gnu99 -o test.o -c test.c
gcc -o test test.o -lm
sin(30.00)=0.50
郑重声明:本站内容如果来自互联网及其他传播媒体,其版权均属原媒体及文章作者所有。转载目的在于传递更多信息及用于网络分享,并不代表本站赞同其观点和对其真实性负责,也不构成任何其他建议。