プロが教えるわが家の防犯対策術!

以下の3行を前提条件とします。
メインのプログラムmainと動的ライブラリsub1.soとsub2.soがあります。
sub1.cとsub2.cにはsub.hというヘッダをインクルードしています。
mainはsub1.soおよびsub2.soを実行時に動的にリンクします。

ここでsub1.c中で int TEST=10;と変数を定義しました。
さらにsub.h中にextern int TEST;と変数を宣言しました。
そしてsub2.h中で if(TEST){…}と記述しました。
この状態でコンパイルを実行しました。

ここでmainを実行すると動きません。
調べてみるとsub2.soがTESTがundefined symbolとなっていました。

動的ライブラリ間での変数の共有の仕方は上の書き方では不正確なのでしょうか?

A 回答 (1件)

コード自体はそれでいいはずですが、sub2.soを作る際にsub1.soへの依存(動的リンク)があることを指示してないんでは?

    • good
    • 0
この回答へのお礼

回答ありがとうございます。試してみます。
返信がおくれてもうしわけありませんでした。

お礼日時:2011/10/31 11:32

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!