[C++] 192 FLTK : Windows11でのビルド成功 Makefile

[Windows11, g++ 9.2.0, FLTK 1.3.8, NO IDE]

カラーアプリFLTK版のMacからの移植が一応完了しました。

MakefileをWindows仕様に書き換えるのに半日かかりました。地道に情報収集しながら足りないライブラリを追加していき、完成にこぎつけました。

相変わらずWindowsのシステムフォントが今ひとつなので独自フォントを作成して導入したいのですが、これは中長期的課題としておきます。

次は英語版へのローカライズ対応です。Javaでしか経験がないため一から調べることになります。

まあ日本語を廃して英語版でリリースするのもありかなと考えています。

# コンパイラ設定他
COMPILER = g++
DEBUG = -g

# フラグ設定
CPPFLAGS = $(fltk-config --use-gl --use-images --cxxflags) -std=c++17 -D WIN32
LDFLAGS = $(fltk-config --use-gl --use-images --ldflags)

# includeパス(-I)
INCLUDE = -I"C:\MinGW\include" -I"C:\FLTK\fltk-1.3.8\include" \
-I"D:\code\cpp\mylib\include" -I"D:\code\cpp\projects\ColorSampleJP\include"

# ライブラリパス(-l)
LIBRARY_l = "C:\FLTK\fltk-1.3.8\lib\libfltk.a" "D:\code\cpp\mylib\lib\Funcs.a" \
"D:\code\cpp\mylib\lib\ColorConvert.a" "D:\code\cpp\mylib\lib\CharExtract.a" \
"D:\code\cpp\mylib\lib\csvProcessChar.a" "D:\code\cpp\mylib\lib\Split.a" \
"D:\code\cpp\mylib\lib\csvProcessString.a"

# ライブラリパス(-L)
LIBRARY_L = 

# 追加ライブラリパス
LIB_ADD = -L"C:\MinGW\mingw64\lib" -mwindows -lgcc -lole32 -loleaut32 -luuid -lwsock32 -lgdi32 -lcomctl32

# ソースファイル
SRCDIR = .\src
SRCS = $(SRCDIR)\btnAction.cpp $(SRCDIR)\FileChooser.cpp $(SRCDIR)\FileChooser2.cpp $(SRCDIR)\main.cpp $(SRCDIR)\modalDialog.cpp $(SRCDIR)\searchLocation.cpp

# オブジェクトファイル
OBJDIR = .\obj
OBJS = $(OBJDIR)\btnAction.o $(OBJDIR)\FileChooser.o $(OBJDIR)\FileChooser2.o $(OBJDIR)\main.o $(OBJDIR)\modalDialog.o $(OBJDIR)\searchLocation.o

# 実行ファイル
TARGETDIR = .\bin
TARGET = ColorSample

# cppファイルからoファイル作成 $<:依存ファイル
$(OBJDIR)\btnAction.o: $(SRCDIR)\btnAction.cpp
	$(COMPILER) $(CPPFLAGS) $(INCLUDE) $(DEBUG) -o $@ -c $<

$(OBJDIR)\FileChooser.o: $(SRCDIR)\FileChooser.cpp
	$(COMPILER) $(CPPFLAGS) $(INCLUDE) $(DEBUG) -o $@ -c $<

$(OBJDIR)\FileChooser2.o: $(SRCDIR)\FileChooser2.cpp
	$(COMPILER) $(CPPFLAGS) $(INCLUDE) $(DEBUG) -o $@ -c $<

$(OBJDIR)\main.o: $(SRCDIR)\main.cpp
	$(COMPILER) $(CPPFLAGS) $(INCLUDE) $(DEBUG) -o $@ -c $<

$(OBJDIR)\modalDialog.o: $(SRCDIR)\modalDialog.cpp
	$(COMPILER) $(CPPFLAGS) $(INCLUDE) $(DEBUG) -o $@ -c $<

$(OBJDIR)\searchLocation.o: $(SRCDIR)\searchLocation.cpp
	$(COMPILER) $(CPPFLAGS) $(INCLUDE) $(DEBUG) -o $@ -c $<

# oファイルから実行ファイル作成
$(TARGET):$(OBJS)
	$(COMPILER) -o $(TARGETDIR)\$@ $(OBJS) $(LIBRARY_l) $(LIBRARY_L) $(LIB_ADD) $(LDFLAGS)

# コンパイル&ビルド
.PHONY:all
all: clean $(TARGET)

# ファイル削除
.PHONY:clean
clean:
	del /Q $(OBJS) $(TARGETDIR)\$(TARGET).exe

ビルドオプション参考サイト