日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁(yè) > 运维知识 > linux >内容正文

linux

Linux学习笔记——例说makefile 综合案例

發(fā)布時(shí)間:2025/4/16 linux 26 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Linux学习笔记——例说makefile 综合案例 小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.
0.前言 從學(xué)習(xí)C語(yǔ)言開始就慢慢開始接觸makefile,查閱了非常多的makefile的資料但總感覺沒有真正掌握makefile,假設(shè)自己動(dòng)手寫一個(gè)makefile總認(rèn)為非常吃力。所以特意借助博客總結(jié)makefile的相關(guān)知識(shí),通過樣例說明makefile的詳細(xì)使用方法。 例說makefile分為下面幾個(gè)部分,很多其它內(nèi)容請(qǐng)參考【例說makefile索引博文】 ? ? 1.僅僅有單個(gè)C文件? ? 2.含有多個(gè)C文件? ?? 3.須要包含頭文件路徑 4.添加宏定義 5.添加系統(tǒng)共享庫(kù) 6.添加自己定義共享庫(kù) 7.一個(gè)實(shí)際的樣例
【代碼倉(cāng)庫(kù)】——makefile-example 代碼倉(cāng)庫(kù)位于bitbucket,可借助TortoiseHg(GUI工具)克隆代碼或者在網(wǎng)頁(yè)中直接下載zip包。

【本例說明】
本例借助開源項(xiàng)目freemodbus展開來分析makefile的詳細(xì)使用方法,freemodbus包含多個(gè)平臺(tái)的移植分支,本例主要從linuxTCP入手。

本文將不會(huì)闡述freemodbus的詳細(xì)使用方法,而是以makefile的使用方法為主。


1.makefile文件 請(qǐng)?zhí)鎿Q當(dāng)中的[tab]。并以代碼倉(cāng)庫(kù)中的makefile文件為主。 # 指定編譯器 CC = gcc# CFLAG包含頭文件文件夾 CFLAGS = -g -Wall# 頭文件查找路徑 INC = -Iport -I../../modbus/rtu \-I../../modbus/ascii -I../../modbus/include -I../../modbus/tcp# 靜態(tài)鏈接庫(kù) LDFLAGS = LDLIBS = -lpthread # 目標(biāo) TARGET = tcpmodbus # 源文件 SRC = demo.c port/portother.c \port/portevent.c port/porttcp.c \../../modbus/mb.c ../../modbus/tcp/mbtcp.c \../../modbus/functions/mbfunccoils.c \../../modbus/functions/mbfuncdiag.c \../../modbus/functions/mbfuncholding.c \../../modbus/functions/mbfuncinput.c \../../modbus/functions/mbfuncother.c \../../modbus/functions/mbfuncdisc.c \../../modbus/functions/mbutils.c# 源文件編譯為目標(biāo)文件 OBJS = $(SRC:.c=.o)# 鏈接為可運(yùn)行文件 $(TARGET): $(OBJS) [tab]$(CC) $^ -o $@ $(LDFLAGS) $(LDLIBS)# 清除可運(yùn)行文件和目標(biāo)文件 clean: [tab]rm -f $(OBJS) [tab]rm -f $(TARGET)# 編譯規(guī)則 增加頭文件 $@代表目標(biāo)文件 $< 代表第一個(gè)依賴文件 %.o:%.c [tab]$(CC) $(CFLAGS) $(INC) -o $@ -c $<
2.詳細(xì)說明 【1】freemodbus中的文件較多,INC包含全部的頭文件查找路徑,路徑使用前綴-I表示,請(qǐng)注意若路徑較多時(shí)通過"\"實(shí)現(xiàn)續(xù)行。 【2】此處使用了共享庫(kù)pthread,共享庫(kù)的設(shè)備一般包含兩個(gè)方面。第一,共享庫(kù)的名稱 DLIBS。共享庫(kù)的查找路徑LDFLAGS。因?yàn)閜thread為系統(tǒng)共享庫(kù),使用了系統(tǒng)默認(rèn)的查找路徑 /usr/lib,所以LDFLAGS設(shè)置能夠省略,若須要制定共享庫(kù)文件夾,在文件夾前增加-L就可以。 【3】$(CC) $^ -o $@?$(LDFLAGS) $(LDLIBS)?和共享庫(kù)設(shè)置有關(guān)的參數(shù)須要放在鏈接指令中。

請(qǐng)注意共享庫(kù)應(yīng)該插入鏈接過程中而不是編譯過程。


3.運(yùn)行過程 make clean && make ? ? 【控制臺(tái)輸出】 輸出內(nèi)容較多。此處省略。

? ? 【執(zhí)行】 sudo ./tcpmodbus Type 'q' for quit or 'h' for help! > h FreeModbus demo application help:'d' ... disable protocol stack.'e' ... enabled the protocol stack's' ... show current status'q' ... quit applicationr'h' ... this information >
? ? 【說明】 【1】編譯時(shí)增加了頭文件查找路徑。 【2】鏈接時(shí)增加了共享庫(kù)。
4.總結(jié) 【1】LDIBS指定共享庫(kù)。共享庫(kù)以 -l 為前綴。 【2】LDFLAGS指定共享庫(kù)查找路徑。路徑以 -L 為前綴。

總結(jié)

以上是生活随笔為你收集整理的Linux学习笔记——例说makefile 综合案例的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。

主站蜘蛛池模板: 波多野结衣一区二区三区高清av | 国产精品无码电影 | 校花被c到呻吟求饶 | 国产剧情在线视频 | 91亚洲网站 | 成人无码视频 | 亚洲av日韩av高潮潮喷无码 | 欧美日韩黄| 黄色片欧美 | 91精品国产综合久久福利软件 | 国产精品成人va在线观看 | 亚洲av永久无码精品三区在线 | 午夜精品美女久久久久av福利 | 国产又黄又猛 | 亚洲高清在线一区 | 淫欲少妇 | 最新黄色av | 91精品国产一区二区在线观看 | 成人三级在线视频 | 日韩在线www | 免费看污黄网站在线观看 | 中文字幕免费播放 | 精品亚洲在线 | 午夜高潮视频 | 欧美精品激情视频 | 欧洲成人在线 | 精品国产一区二区三区四 | 国产露出视频 | 欧美日韩六区 | 99re在线 | 国产网址在线 | 国产精品一区二区三区免费观看 | 在线观看网站 | 日本大奶视频 | 日日热 | 国产视频福利在线 | 97成网| 久久草视频在线 | 欧美日韩视频一区二区三区 | 久久综合亚洲色hezyo国产 | 国产亚洲精品av | av在观看 | 国产福利在线观看视频 | 丰满人妻一区二区三区大胸 | 国产色片在线观看 | 精品久久久久亚洲 | 久久国产精品久久久久久 | 国产情侣av自拍 | 亚洲日本欧美精品 | 日剧再来一次第十集 | 国产欧美激情在线观看 | 日韩av毛片| 久久看视频 | 欧美涩涩涩 | 一本一道av无码中文字幕 | 日本爱爱网址 | 中文精品久久久久人妻不卡 | 一级黄色免费视频 | 欲涩漫入口免费网站 | 一级片播放 | 日本一区免费看 | 97视频在线播放 | 涩涩网站在线看 | 久久99日韩 | 午夜成人在线视频 | 亚洲一区二区精品 | 欧美日韩亚洲综合 | 在线观看免费黄视频 | 超碰五月天 | 禁断介护av | 欧美 日韩 国产在线 | av中文资源 | 成人免费aaa | 日韩骚片| www.色午夜.com| 欧美精品亚洲一区 | 91成人国产综合久久精品 | 黄色一级免费观看 | 先锋影音色 | 日av在线播放 | 怡红院成人av| 欧美操穴视频 | 日韩三级免费看 | 色偷偷欧美 | 国产精品 欧美 日韩 | 狠狠躁夜夜 | 天干夜夜爽爽日日日日 | 久久免费精品 | 亚洲爆爽av| 欧美a久久 | 高清av网| 91最新国产 | 久久av色 | 一本色道久久88综合无码 | 精品国产999 | 国产精品日日夜夜 | 欧美日韩一区二区在线视频 | 日韩aa视频| 伊人亚洲影院 |