※ ChatGPTを利用し、要約された質問です(原文:リンク(not-in-charge?))
リンク(not-in-charge?)の原因究明の手がかりを教えてください
このQ&Aのポイント
CTestというクラスを作成し、mylibというライブラリを使用しています。
CTest単体では問題なく動作しますが、大きなプログラムで使用しようとするとリンクエラーが発生します。
原因が分からず、リンクエラーの解決方法を知りたいです。
あるクラスを作って、単体では動くようになっています。
CTestという名前であり、mylibというライブラリを必要としているとして、
g++ -o test testmain.o CTest.o -lmylib
とするとうまくいきます。
しかし、それを大きなプログラムで使おうとすると、
ex) g++ -o prj prjmain.o CTest.o ・・・ -lmylib・・・
とたんに
CTest.o(.text+0xb):In function `CTest::CTest[not-in-cahrge]()`:
: undefined reference to `mylib::DEFSTASCKSIZE`
・・・
・・・
collect2: ld はステータス1で終了しました
となってしまいます。
testmainのほうでリンクが失敗しているならわかるのですが、そうでないのにリンクが失敗するので原因がさっぱりわかりません。一応名前は衝突していないつもりです。(クラスの名前を2通りにしてやってみました。)
どなたか原因究明の手がかりを教えていただけないでしょうか?