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

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

如何将内核静态库编译连接到驱动程序中去【转】

發布時間:2023/12/9 编程问答 30 豆豆
生活随笔 收集整理的這篇文章主要介紹了 如何将内核静态库编译连接到驱动程序中去【转】 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

轉自:http://blog.csdn.net/ganjianfeng2003/article/details/8089551

如何將內核靜態庫編譯連接到驅動程序中去

2010-12-07 08:27?331人閱讀?評論(1)?收藏?舉報

http://blog.chinaunix.net/u2/61663/showart_2404744.html

?

?

剛上郵箱的時候發現一位網友向我詢問這個問題,同時發送了一個鏈接給我了。

上去一看,上面還留有我以前同樣的提問,看看時間,都幾年前在別人的帖子里面的提問了。貌似當時我遇到同樣問題的時候也是到處發帖回帖詢問來著的,問的地方有點多,要不是這位朋友給我鏈接,早不記得那個鏈接也有訪問過,呵呵。

?

不過再往下看了后才發現,這個問題依然沒有給出明確的回答,很多朋友給出的都是應用層庫的鏈接,這和期望的內核層的鏈接是不一樣的。

?

所以我把自己的一點理解寫出來,給后面的朋友參考,期望對后來的朋友有所幫助。

?

?

我覺得在驅動程序里面編譯鏈接內核靜態庫需要從三個方面注意:

1.???????首先保證你正確生成了內核庫文件,而非應用程序庫文件;

2.???????其次是除去靜態庫之外的驅動文件的正確性,包括內核庫函數的調用和頭文件的申明;

3.???????正確修改驅動的Makefile

這幾個方面都正確之后,就能正確地將內核庫編譯進指定的驅動中去。

?

?

下面詳細給出個最簡單的例子給大家參考,畢竟有代碼參考才是大家快速編程的王道。

代碼目錄結構如下:?

DriverEntry.c

?

Makefile

?

lib

myalib.c

myalib.c

Makefile

1.?????????內核靜態庫文件的生成

?

內核庫包含一個myalib.c和myalib.h文件,代碼如下:

//myalib.c

void test(void)

{

????printk("A lib test./n");

}

?

//myalib.h

void test(void);

?

# This is the Makefile for parse.

RM = rm -f

?

CCFLAGS = -c

ARFLAG??= -rc

?

CC = gcc

AR = ar

?

lib_OBJECTS??=??myalib.o

lib_SOURCE??=??myalib.c

?

LIB = libtest.a

?

libtest.a:$(lib_OBJECTS)

?????????(AR)(AR)(ARFLAG) -o?@@^

????????

(libOBJECTS):(libOBJECTS):(lib_SOURCE)

?????????(CC)(CC)(CCFLAGS) -o?@@^

?

clean:

?????????(RM)(RM)(lib_OBJECTS.o)

?????????(RM)(RM)(LIB)

?

在輸入終端下執行”make”命令即可生成正確的內核庫文件。










本文轉自張昺華-sky博客園博客,原文鏈接:http://www.cnblogs.com/sky-heaven/p/5710135.html,如需轉載請自行聯系原作者


總結

以上是生活随笔為你收集整理的如何将内核静态库编译连接到驱动程序中去【转】的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。