怎么使用庫函數(shù) 動(dòng)態(tài)庫中如何調(diào)用靜態(tài)庫函數(shù)?
動(dòng)態(tài)庫中如何調(diào)用靜態(tài)庫函數(shù)?我們可以得出第一個(gè)結(jié)論:兩者都是靜態(tài)鏈接庫。當(dāng)有同名函數(shù)時(shí),鏈接會(huì)有多次定義符號(hào)的錯(cuò)誤!讓我們看看這兩個(gè)動(dòng)態(tài)庫的動(dòng)態(tài)鏈接庫。同一個(gè)LIBA libb生成動(dòng)態(tài)鏈接庫,不修改主
動(dòng)態(tài)庫中如何調(diào)用靜態(tài)庫函數(shù)?
我們可以得出第一個(gè)結(jié)論:兩者都是靜態(tài)鏈接庫。當(dāng)有同名函數(shù)時(shí),鏈接會(huì)有多次定義符號(hào)的錯(cuò)誤!讓我們看看這兩個(gè)動(dòng)態(tài)庫的動(dòng)態(tài)鏈接庫。同一個(gè)LIBA libb生成動(dòng)態(tài)鏈接庫,不修改主測試程序!或者:如果刪除動(dòng)態(tài)庫,這種編譯方法稱為動(dòng)態(tài)庫的隱式調(diào)用利巴索,運(yùn)行a.out時(shí),將出現(xiàn)找不到動(dòng)態(tài)庫的錯(cuò)誤。這種情況也可以稱為加載時(shí)間鏈接!靜態(tài)庫屬于編譯時(shí)鏈接!第二個(gè)結(jié)論是:如果它們都是動(dòng)態(tài)庫并且被隱式調(diào)用,則輸出結(jié)果與動(dòng)態(tài)庫的順序有關(guān)。繼續(xù)看動(dòng)態(tài)加載動(dòng)態(tài)庫。修改主測試程序還可以得出結(jié)論,如果動(dòng)態(tài)鏈接庫沒有add library link選項(xiàng),則函數(shù)調(diào)用是正確的add library路徑,并且?guī)炻窂降捻樞驅(qū)⑹侵髀窂剑∽髠?cè)將覆蓋右側(cè)。而且,只有其中一個(gè)鏈接時(shí)才會(huì)生效,如:圖片已被非法鏈接,請?jiān)儐枺x謝
不會(huì)配置STM32寄存器,但會(huì)使用官方庫函數(shù)不影響STM32單片機(jī)的使用。STM32單片機(jī)在編程時(shí)可以采用配置寄存器和庫函數(shù)的方式。這兩種方式都可以操作STM32單片機(jī)。
熟悉51單片機(jī)的朋友,都知道在編寫程序時(shí),需要配置51單片機(jī)寄存器。單片機(jī)擁有大量的片上資源,而要使片上資源正常工作,需要配置相應(yīng)的寄存器。例如,單片機(jī)的定時(shí)器資源,在配置定時(shí)器相關(guān)寄存器時(shí),主要是配置定時(shí)器的工作模式、位數(shù)、是否使用定時(shí)中斷、配置初始值等,并向STM32單片機(jī)、廠家直接提供官方庫功能。這些庫函數(shù)的功能實(shí)際上是封裝寄存器配置過程。編程時(shí),用戶不需要直接處理寄存器,只需調(diào)用相應(yīng)的庫函數(shù)即可。這樣,寄存器的配置過程就可以分離,實(shí)現(xiàn)了硬件層和軟件層的簡單分離,實(shí)際上就是驅(qū)動(dòng)程序的作用。
STM32還具有Hal庫。即使使用庫函數(shù)編程,也建議您研究寄存器。
因此,無論是使用庫函數(shù),還是直接配置寄存器都能操作MCU。