可以說我有一個函數hello_world()在文件new.c中定義。我從這個文件new.c和另一個文件hello.c創建一個模塊。這個模塊將被稱爲new.ko.函數hello_world()使用EXPORT_SYMBOL導出到另一個模塊。我的問題是,我可以在定義函數hello_world()時使用靜態inline關鍵字,因爲它並未被new.ko模塊中new.c文件之外的另一個函數使用。EXPORT_SYMBOL和靜態關鍵字
做靜態和EXPORT_SYMBOL互相矛盾?謝謝。
可以說我有一個函數hello_world()在文件new.c中定義。我從這個文件new.c和另一個文件hello.c創建一個模塊。這個模塊將被稱爲new.ko.函數hello_world()使用EXPORT_SYMBOL導出到另一個模塊。我的問題是,我可以在定義函數hello_world()時使用靜態inline關鍵字,因爲它並未被new.ko模塊中new.c文件之外的另一個函數使用。EXPORT_SYMBOL和靜態關鍵字
做靜態和EXPORT_SYMBOL互相矛盾?謝謝。
嘗試使用Makefile中的「導出」。
是的,它們互相矛盾。您使用static
來指示編譯器,您將不會從此文件以外的任何位置調用此函數,而EXPORT_SYMBOL
僅用於完成相反的操作。
http://stackoverflow.com/questions/21746378/not-able-to-insmod-or-use-inter-kernel-modules/21746424#21746424 – Jeyaram
[Linux設備驅動程序中的靜態函數](http ://stackoverflow.com/questions/14423333/static-functions-in-linux-device-driver) – Jeyaram