keil5生成不了hex文件 怎么用Keil將C程序封裝成lib庫(kù)?
怎么用Keil將C程序封裝成lib庫(kù)?沒(méi)有辦法改變它。因?yàn)長(zhǎng)ib有IO端口,所以打包后的pin在編譯時(shí)已經(jīng)包含在代碼中,如果新項(xiàng)目想改變IO端口,就需要修改翻譯后的Lib代碼,但是不改變Lib是無(wú)法實(shí)
怎么用Keil將C程序封裝成lib庫(kù)?
沒(méi)有辦法改變它。因?yàn)長(zhǎng)ib有IO端口,所以打包后的pin在編譯時(shí)已經(jīng)包含在代碼中,如果新項(xiàng)目想改變IO端口,就需要修改翻譯后的Lib代碼,但是不改變Lib是無(wú)法實(shí)現(xiàn)的。必須修改和重新編譯IO端口的定義。如果不能更改lib,就不能更改IO端口。這也可以做到。根據(jù)原來(lái)的IO引腳設(shè)計(jì)一個(gè)新的項(xiàng)目并不困難。為什么要更改IO引腳?必須更改I/O引腳。重新打包lib文件并不困難。在封裝開(kāi)始時(shí),LIB是由C程序生成的。只要找到C程序并修改它。C程序丟了嗎?不,這么重要的程序文件會(huì)丟失嗎?這也是一個(gè)教訓(xùn)。具有IO定義的C程序不應(yīng)打包為lib文件。Keil系統(tǒng)具有大量的庫(kù)函數(shù),幾乎全部打包為lib文件。而且所有庫(kù)函數(shù)都不涉及IO端口,都是通用的,都是純計(jì)算程序。這樣的程序可以打包為lib文件。
keil如何生成.lib文件?
創(chuàng)建庫(kù)。后跟.Lib文件名。
您認(rèn)為編譯失敗了嗎?查看編譯提示uub文件不可用。
keilc51怎么利用自己的庫(kù)?
Keil C51庫(kù)文件是系統(tǒng)的庫(kù)函數(shù),可能出于保密的原因,是將庫(kù)函數(shù)轉(zhuǎn)換成二進(jìn)制文件,而不是普通的C程序。
你自己的圖書(shū)館是什么?它是由子函數(shù)生成的庫(kù)文件嗎?Keil可以生成一些子函數(shù)到庫(kù)文件中。庫(kù)擴(kuò)展名。你的圖書(shū)館是圖書(shū)館嗎?
如果是這樣,請(qǐng)將庫(kù)添加到項(xiàng)目中,就像添加C程序一樣。
在其他C程序中,如果要調(diào)用庫(kù)函數(shù)中的子函數(shù),則需要在調(diào)用C程序中聲明外部函數(shù)名。
用extern語(yǔ)句聲明,例如
extern返回變量名、函數(shù)名(參數(shù)變量名)
如果沒(méi)有返回變量,參數(shù)也不可見(jiàn)。例如:
externalvoiddelay()
可以在C程序中調(diào)用。
如何在keil下制作LIB封裝庫(kù)文件?
很簡(jiǎn)單。我甚至不需要lib。但是頭文件是必需的,但不是必需的。
1. 對(duì)于com機(jī)制,必須有一個(gè)頭文件來(lái)描述接口。
2. 動(dòng)態(tài)加載,導(dǎo)出DLL中的接口。有一個(gè)頭文件更方便。如果沒(méi)有頭文件,可以定義函數(shù)類型并搜索函數(shù)地址來(lái)調(diào)用它
廣義上說(shuō),頭文件也是一種庫(kù)文件。當(dāng)然,您引用的庫(kù)文件是一個(gè)窄庫(kù)文件。該庫(kù)文件是頭文件和C文件的有機(jī)集合。它是這樣做的。例如,當(dāng)您編寫(xiě)一些C文件和頭文件時(shí),這些C文件可以正確編譯并正確生成十六進(jìn)制或bin代碼文件。然后,可以使用keil設(shè)置為不輸出hex,而是生成lib文件,即庫(kù)文件。然后,您可以將生成的庫(kù)文件的功能與原始C文件和頭文件的功能完全相同。不同的是您的庫(kù)文件是只讀的。換句話說(shuō),您可以使用其中的變量和函數(shù),但不能修改它們。一些官方圖書(shū)館的檔案,如ST公司的檔案,也是這樣生成的。那么圖書(shū)館檔案有什么意義呢?一是簡(jiǎn)化開(kāi)發(fā)流程。想象一下,開(kāi)發(fā)一個(gè)項(xiàng)目需要加載幾十個(gè)甚至幾百個(gè)C文件和頭文件。哪一個(gè)比只加載一個(gè)具有等效函數(shù)的庫(kù)文件更容易?最重要的意義是保密。因?yàn)閹?kù)文件是只讀的,你看不到具體的內(nèi)容,如果你想保密,不想讓別人知道你的一些程序是如何實(shí)現(xiàn)的,你可以使用庫(kù)文件。這樣,其他人可以使用您編寫(xiě)的程序,但他們不能修改它,也看不到系統(tǒng)實(shí)現(xiàn)過(guò)程中的具體內(nèi)容。