Makefileを書く
letsboost::asio
ここにあるコードを動かすためのMakefileを書いてみる。
解説
・TARGET できあがった時の実行ファイル名
・SRCS ソースファイル(Source File)
・OBJECTS オブジェクトファイル
・CPPFLAGS ソースファイルをオブジェクトファイルに固めるときのやつ
・LDFLAGS オブジェクトファイルを実行ファイルに固めるときのやつ
・「AsioSample.o :」のコロンの右側には依存しているヘッダファイルとかも書いたりする。今回は無いので省略。
・'-lboost〜という記述が続いているのは、いちいちMakefileを書き直すのがめんどくさいから。全てリンクさせる。フリーソフトのMakefileを見るとたいがいこんな感じで意味不明になっている。
・-Wall…エラーがあったら警告を出してもらう -D_WIN32_WINNT=0x0601…「=」の後はWindowsの機種別
# Makefile TARGET = AsioSample.exe SRCS = AsioSample.cpp OBJECTS = AsioSample.o RM := rm CXX := g++ CC := g++ CPPFLAGS = -O2 -Wall -D_WIN32_WINNT=0x0601 -I/c/MinGW/include -I/c/Boost LDFLAGS = -L/c/MinGW/lib -lws2_32 \ -lboost_chrono-mgw45-mt-1_47 \ -lboost_date_time-mgw45-mt-1_47 \ -lboost_exception-mgw45-mt-1_47 \ -lboost_filesystem-mgw45-mt-1_47 \ -lboost_graph-mgw45-mt-1_47 \ -lboost_iostreams-mgw45-mt-1_47 \ -lboost_math_c99-mgw45-mt-1_47 \ -lboost_math_c99f-mgw45-mt-1_47 \ -lboost_math_c99l-mgw45-mt-1_47 \ -lboost_math_tr1-mgw45-mt-1_47 \ -lboost_math_tr1f-mgw45-mt-1_47 \ -lboost_math_tr1l-mgw45-mt-1_47 \ -lboost_prg_exec_monitor-mgw45-mt-1_47 \ -lboost_program_options-mgw45-mt-1_47 \ -lboost_random-mgw45-mt-1_47 \ -lboost_regex-mgw45-mt-1_47 \ -lboost_serialization-mgw45-mt-1_47 \ -lboost_signals-mgw45-mt-1_47 \ -lboost_system-mgw45-mt-1_47 \ -lboost_test_exec_monitor-mgw45-mt-1_47 \ -lboost_thread-mgw45-mt-1_47 \ -lboost_unit_test_framework-mgw45-mt-1_47 \ -lboost_wave-mgw45-mt-1_47 \ -lboost_wserialization-mgw45-mt-1_47 \ # make all : $(TARGET) $(TARGET) : $(OBJECTS) $(CXX) $(OBJECTS) -o $(TARGET) $(LDFLAGS) AsioSample.o : $(CXX) -c AsioSample.cpp $(CPPFLAGS) # make clean .PHONY: clean clean: rm -f *.o