#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
|