ページ 11

GCCでboostをリンクできずに困っています

Posted: 2012年4月22日(日) 08:39
by ぱるぱる
複数の.oファイルから実行ファイルを作りたいのですが、
boost::filesystemをリンクできずに困っています。
boostはver1.41で、Makefileは次のように書いています。

コード:

# Makefile

#output file
ArchiveSystem.out:Util.o Rand.o LoadFile.o SaveFile.o ArchiveSave.h ArchiveLoad.h
        g++ Main.cpp -o ArchiveSystem.out Util.o Rand.o LoadFile.o SaveFile.o ArchiveSave.h ArchiveLoad.h

# object file
Util.o:Util.cpp Util.h
        g++ -c Util.cpp -o Util.o
Rand.o:Rand.cpp Rand.h
        g++ -c Rand.cpp -o Rand.o
LoadFile.o:LoadFile.cpp Util.h Rand.h ArchiveLoad.h
        g++ -c LoadFile.cpp -o LoadFile.o
SaveFile.o:SaveFile.cpp Util.h Rand.h ArchiveSave.h
        g++ -c  SaveFile.cpp -llibboost_system-mt.so -llibboost_filesystem-mt.so -o SaveFile.o
#Main.o:Main.cpp ArchiveSave.h ArchiveLoad.h
#       g++ -c Main.cpp -o Main.o

Re: GCCでboostをリンクできずに困っています

Posted: 2012年4月22日(日) 10:01
by h2so5
-c オプションが付いているとコンパイルのみでリンクをしないので、
このコマンドの -l オプションは意味が無いです。

g++ -c SaveFile.cpp -llibboost_system-mt.so -llibboost_filesystem-mt.so -o SaveFile.o

Re: GCCでboostをリンクできずに困っています

Posted: 2012年4月22日(日) 13:49
by ぱるぱる
-cオプションはリンクしないんですね、知りませんでした。
g++ -c SaveFile.cpp -llibboost_system-mt.so -llibboost_filesystem-mt.so -o SaveFile.o

g++ -c SaveFile.cpp -o SaveFile.o
として、実行ファイル生成時に-lboost_system -lboost_filesystemを付け足すことで解決しました。
ありがとうございました。