2016-06-25 30 views
2

Linuxカーネルモジュールで定義されたグローバル変数をサブディレクトリ間で使用できるようにする方法はありますか?EXPORT_SYMBOLを使用すると、現在のディレクトリ全体で使用できるようになります。私はヘッダファイルでそれを定義しようとしましたが、ヘッダファイルを "../name_header.h"を使ってサブディレクトリに入れてみましたが、変数を認識していないようです。 具体的には、私はcファイルに変数vport.c(openvswitchの)を1つ持っています。サブディレクトリの中でこの変数にアクセスしたいと思います。カーネル空間内のサブディレクトリ間でグローバル変数にアクセスする方法は?

+0

コードとエラーメッセージを貼り付けることはできますか? – Lin

答えて

0

EXPORT_SYMBOLは、動的リンクコード(カーネルモジュール)でシンボルを使用できますが、これは達成しようとしているとは思われません。

異なるコンパイルユニットから変数にアクセスするには、その変数にアクセスしようとしているCファイルにextern減速を追加します。あるいは、共通のヘッダーファイルを使用して、そのファイルにexternの減速を入れてください。典型的には、コンパイルユニット(例えば、cファイル)が異なるディレクトリまたはサブディレクトリにあるかどうかは問題ではない。

+0

私もそれをやってみました - 私はヘッダーファイルを使ってみましたが、ovs/includeディレクトリ(すべてのグローバルヘッダーが定義されています)と親ディレクトリに配置しようとしましたが、変数を認識していないようです – lavanya

関連する問題