- ベストアンサー
Linuxのmake時のエラーについて
- Linuxのmake時に発生したエラーの解決方法について
- 他のPCでは正常にmakeできたプログラムが自分のPCではエラーが発生する
- g++コマンド実行時にundefined referenceエラーが発生
- みんなの回答 (3)
- 専門家の回答
質問者が選んだベストアンサー
回答No.1の者です。 >この場合、どうすればよいでしょうか? makefileの該当行を書き換えてください。 たとえば、makefileにこのように書かれていたとします。 $(PROGRAM): $(OBJS) g++ $(LDFLAGS) -o $(PROGRAM) $(OBJS) この2行目をこう書き換えて$(LDFLAGS)の位置を変え、makeを実行し直せばいいはずです。 g++ -o $(PROGRAM) $(OBJS) $(LDFLAGS)
その他の回答 (2)
- _kappe_
- ベストアンサー率68% (1581/2304)
-lpthreadなどをコマンドラインの最後にしてください。 g++ -o SchedFifoTest SFthread.o SchedFifoTest.o -L. -lpthread -lrt -lm
お礼
ご回答ありがとうございます。makefileには下記のようにオプション指定していて、それで質問文のようなエラーになったのですが、この場合、どうすればよいでしょうか? LDFLAGS = -L. -lpthread -lrt -lm
- A1200hd40
- ベストアンサー率51% (336/647)
ビルド環境がわからない状態ですが、とりあえず。 ざっと検索掛けてみましたが、対象違いの複数のundefined referenceが出てますんで、こちらに該当しませんか? qiita @yaizaが2019年04月25日に更新 [C言語]リビルドしただけなのにUndefined reference エラーが出るぞ?[gcc/g++] https://qiita.com/yaiza/items/551b0f8d962da4fe1996 引用開始> どうもgccでビルドした共有ライブラリをg++使ってリンクしたことで起きていたようでした。オブジェクトファイル(この場合はsoファイルかな?)上では同じソースからでもgccとg++で異なる名前になるようで、g++から名前解決できていないということが原因でした。 <引用終わり
お礼
教えていただいた通りにすると成功しました!本当にありがとうございました!!!!