国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 學院 > 開發設計 > 正文

Linux學習篇------gcc編譯及Makefile基本知識

2019-11-08 02:55:55
字體:
來源:轉載
供稿:網友

1.編寫一個主程序,在主程序中調用某個子程序

thank.c#include <stdio.h>int main(void){ 如何將兩個程序連接到一起,在linux的終端中執行命令

gcc -c thank.c thank2.c //gcc -c xxx.c 會生成.o目標文件gcc -o thank thank.o thank2.o //gcc -o xxx.o會生成可執行二進制文件,若沒有指定名字,默認為a.out./thank //執行ll thank* //查看thank的文件

顯示警告信息 gcc -Wall -c thank.c thank2.c 2.調用外部函數:加入鏈接的函數庫

sin.c中#include <stdio.h>int main(void){ float value; value = sin(3.14/2); printf("%f/n",value);}

若直接使用gcc -c sin.c會出現無法找到sin函數的錯誤(undefines reference to sin) 所以 必須要連接必要的庫(C語言里面的sin函數在linm.so這個函數庫中)

gcc -c sin.c -lm -L/lib -L/usr/lib

總結gcc的用法

//僅編譯生成鏈接文件gcc -c hello.c//直接編譯生成可執行文建(不加參數./a.out)gcc hello.c//在編譯的時候依據操作環境給予優化執行速度gcc -O hello.c -c//在制作二進制文件的時候,將鏈接的函數庫與相關路徑填入gcc sin.c -lm -L/usr/lib -I/usr/include//-lm是指libm.so或libm.a這個函數庫文件//-L后面接的是路徑是剛才上面那個函數庫的搜索目錄//-I后面接的是源碼內的include文件所在目錄//生成某個特定名字的可執行文件gcc -o hello hello.c//顯示警告信息gcc -o hello hello.c -Wall

2.Makefile的基本用法 一、基本規則: (1)makefile中#表示批注 (2)在命令行前一定要用 (3)目標與相關文件之間用:隔開

vi makefilemain:main.o hh.o sin.o cos.o gcc -o main main.o hh.o sin.o cos.oclean: rm -f main main.o hh.o sin.o cos.o

想要先清除信息在建立main信息,可以make clean main 二、可以使用shell script簡化腳本

LIBS = -lmOBJS = main.o hh.o sin.o cos.omain:${OBJS} gcc -o main ${OBJS} ${LIBS}clean: rm -f main ${OBJS}
發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 垦利县| 兰考县| 荆门市| 广丰县| 清远市| 巫溪县| 巴东县| 新民市| 昭通市| 德昌县| 荆门市| 平湖市| 界首市| 吐鲁番市| 石狮市| 阜阳市| 景泰县| 西吉县| 河间市| 湖南省| 孝义市| 资兴市| 北京市| 弋阳县| 华容县| 丰原市| 石城县| 那坡县| 定襄县| 兴安盟| 本溪市| 剑川县| 惠水县| 成武县| 扎赉特旗| 随州市| 温泉县| 霍林郭勒市| 辰溪县| 沁阳市| 沁阳市|