2010-11-27 29 views
6

グローバル変数(ログファイル構造)を使用するアプリケーションをC言語で作成しています。私のアプリケーションでは、実行時に共有ライブラリを動的にロードしています。同じログファイル構造を指すグローバル変数を使用して、共有ライブラリにログインする必要があります。共有ライブラリ内のグローバル変数を使用する

  • のdlopen()はグローバル変数が定義未定義のシンボル
  • であることサイスためにexternが動作しませんよう、グローバル変数を宣言:

    これは簡単なアプローチでは可能ではないようですグローバル変数は再び動作しますが、 "new"変数は実行可能ファイルの "オリジナル"変数と同じではありません。

これを修正する方法についてのヒントはあります。

ありがとうございました!

答えて

8

あなたは-rdynamicフラグ(例えばとメインアプリケーションコンパイルする必要があります。gcc -g -rdynamic -o main main.cを、そしてexternを使用して、動的ライブラリ内のグローバル変数を宣言する

+0

peoroありがとう、私はリンカに-rdynamicフラグを渡すために持っていました今は正常に動作します。 – herzrasen

関連する問題