• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:Linuxのmake時のエラーについて)

Linuxのmake時のエラーについて

このQ&Aのポイント
  • Linuxのmake時に発生したエラーの解決方法について
  • 他のPCでは正常にmakeできたプログラムが自分のPCではエラーが発生する
  • g++コマンド実行時にundefined referenceエラーが発生

質問者が選んだベストアンサー

  • ベストアンサー
  • _kappe_
  • ベストアンサー率68% (1581/2304)
回答No.2

回答No.1の者です。 >この場合、どうすればよいでしょうか? makefileの該当行を書き換えてください。 たとえば、makefileにこのように書かれていたとします。 $(PROGRAM): $(OBJS)   g++ $(LDFLAGS) -o $(PROGRAM) $(OBJS) この2行目をこう書き換えて$(LDFLAGS)の位置を変え、makeを実行し直せばいいはずです。   g++ -o $(PROGRAM) $(OBJS) $(LDFLAGS)

octopass
質問者

お礼

教えていただいた通りにすると成功しました!本当にありがとうございました!!!!

その他の回答 (2)

  • _kappe_
  • ベストアンサー率68% (1581/2304)
回答No.1

-lpthreadなどをコマンドラインの最後にしてください。 g++ -o SchedFifoTest SFthread.o SchedFifoTest.o -L. -lpthread -lrt -lm

octopass
質問者

お礼

ご回答ありがとうございます。makefileには下記のようにオプション指定していて、それで質問文のようなエラーになったのですが、この場合、どうすればよいでしょうか? LDFLAGS = -L. -lpthread -lrt -lm

  • A1200hd40
  • ベストアンサー率51% (336/647)
回答No.1

ビルド環境がわからない状態ですが、とりあえず。 ざっと検索掛けてみましたが、対象違いの複数のundefined referenceが出てますんで、こちらに該当しませんか? qiita @yaizaが2019年04月25日に更新 [C言語]リビルドしただけなのにUndefined reference エラーが出るぞ?[gcc/g++] https://qiita.com/yaiza/items/551b0f8d962da4fe1996 引用開始> どうもgccでビルドした共有ライブラリをg++使ってリンクしたことで起きていたようでした。オブジェクトファイル(この場合はsoファイルかな?)上では同じソースからでもgccとg++で異なる名前になるようで、g++から名前解決できていないということが原因でした。 <引用終わり