| 
 
| 
 #gcc -o hello1 hello.c -v
 # -o x y.c  生成可执行文件x ,依赖文件是y.c 此操作直接一步到位,把预处理,编译,汇编,链接操作全给做了直接一步到位生成可执行文件
 
 # -v 意思是打印编译时候显示的信息
 # -o 生成目标文件
 # -I 指定头文件目录
 # -L 指定链接时候的库文件目录
 # -l 指定链接哪一库文件
 
 #gcc hello.c #直接编译一步到位 生成个a.out可执行文件
 #gcc -c main.c #直接 一步到位 包括预处理 编译 汇编 产生个mian.o 目标文件,如果文件名是ace.c 那就产生个ace.o目标文件
 
 #cd source/
 
 #gcc -E -o hello.i show_compile.c  # -E 预处理选项 hello.i产生预处理后的文件
 #gcc -S -o hello.s hello.i # -S 编译程序 将预处理后的高级语言文件 编译成汇编文件
 #gcc -c -o hello.o main.c  # -c选项 一步到位 把预处理 编译 汇编 全做了,直接生成个目标文件 hello.o
 #gcc -o hello hello.o # -o 选项就是把目标文件进行个链接 将hello.o 以及其他的库文件.o文件 链接成个可执行文件hello
 
 # gcc -c -o main.o main.c
 # gcc -o test main.o -Lmath_lib/include/ -lmath
 
 
 
 # 静态库使用教程 -Ldir dir是静态库的文件目录 ,-lname 假如 静态库是 libmath.a 则这个name 就是math
 # gcc -o test main.c -Lmath_lib/include/ -lmath
 
 # cd math_lib/
 # ./compile.sh
 # cd ..
 
 ./rm-rf.sh #把之前编译的文件全给删除了
 
 # # -I math_lib/include 后边是跟的头文件目录  ./意思白哦是当前路径下
 # gcc -c -o main.o main.c -I ./math_lib/include -I ./math_lib/library
 
 # # 静态库使用教程 -Ldir dir是静态库的文件目录 ,-lname 假如 静态库是 libmath.a 则这个name 就是math
 # gcc -o test main.o -Lmath_lib/library -lmath0 -lmath1 #math0是静态库0 math1是静态库1
 # ./test #运行程序
 
 
 # 包含头文件 -I math_lib/include 后边是跟的头文件目录  ./意思白哦是当前路径下
 gcc -c -o main.o main.c -I ./math_lib/include -I ./math_lib/library
 
 # 静态库使用教程 -Ldir dir是动态库的文件目录 ,-lname 假如 动态库是 libmath0.a 则这个name 就是math0
 gcc -o test main.o -Lmath_lib/library -lmath  #math是动态库 math1是动态库1
 
 #设置下程序中动态库的路径 因为程序运行时候需要调用 但是静态库就无需这样
 export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/home/wls/emmd_-linux/4.0_makefile/math_lib/library
 ./test #运行程序
 
 
 
 # 头文件知识介绍 #include <stdio.h>  #include "stdio.h"
 #      < >的意思是去工具链指定目录查找头文件 ""的意思是去当前目录中去查找头文件
 #  "math_lib/include/ar_opreat1.h"  除非你是像这样 在包含的时候直接指定头文件路径
 #  在编译的时候也可以 使用gcc命令进行 -I dir -I dir 指定单个或者多个头文件路径
 #                                   dir 就是头文件路径 可以是绝对路径 也可以是相对路径
 
 
 
 #gcc -o hello1 hello.c -v
 # -o x y.c  生成可执行文件x ,依赖文件是y.c 此操作直接一步到位,把预处理,编译,汇编,链接操作全给做了直接一步到位生成可执行文件
 # -v 意思是打印编译时候显示的信息
 # -o 生成目标文件
 # -I 指定头文件目录
 # -L 指定链接时候的库文件目录
 # -l 指定链接哪一库文件
 
 # --- 以下没有指定 编译的.c文件路径 和 生成的目标文件.o 或者.i 或者可执行文件test的路径
 # 那就默认是 他们都在同一级别的目录
 
 #gcc hello.c #直接编译一步到位 生成个a.out可执行文件
 #gcc -c main.c #直接 一步到位 包括预处理 编译 汇编 产生个mian.o 目标文件,如果文件名是ace.c 那就产生个ace.o目标文件
 #gcc -E -o hello.i show_compile.c  # -E 预处理选项 hello.i产生预处理后的文件
 #gcc -S -o hello.s hello.i # -S 编译程序 将预处理后的高级语言文件 编译成汇编文件
 #gcc -c -o hello.o main.c  # -c选项 一步到位 把预处理 编译 汇编 全做了,直接生成个目标文件 hello.o
 #gcc -o hello hello.o # -o 选项
 ————————————————
 
 版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
 
 原文链接:https://blog.csdn.net/m0_57249200/article/details/132167374
 
 
 | 
 |