[C++] 217 Visual C++ : 非IDE開発環境 その1 Makefile作成準備

[Windows11, Visual C++2017, FLTK 1.3.8, NO IDE]

これまで我慢してVisual Studioを使ってきましたが、製作中アプリのプロジェクトディレクトリのサイズが1.5GB越えと知り(MinGWはたった6MB)、脱Visual Studio(GUI)の決意を固めました。

動作が重いなどパフォーマンスは低いのにストレージをドカ食いはあり得ないです。

Makefileでコンソール開発環境の構築を図ります。とりあえずFLTKを使ったプログラムをコンソールでビルドしました。

このコマンドを元にMakefileを作成します。

#include<FL/Fl.h>
#include<FL/Fl_Box.h>
#include<FL/Fl_Window.h>

Fl_Window* window;
Fl_Box* box;

int main()
{
	window = new Fl_Window(200, 200, 200, 200, "Window title");
	box = new Fl_Box(0, 0, 200, 200, "Hey, I mean, Hello, World!");

	window->show();
	return Fl::run();
}
cl /std:c++17 ^
/GS /W3 /Zc:wchar_t /ZI /Gm- /Od /sdl  /Zc:inline /fp:precise /D "_DEBUG" /D "_CONSOLE" /D "_UNICODE" ^
/errorReport:prompt /WX- /Zc:forScope /RTC1 /Gd /MDd /FC /diagnostics:column ^
/I"C:\packages\fltk-1.3.8\include" ^
/DYNAMICBASE "fltkd.lib" "wsock32.lib" "comctl32.lib" "fltk_jpegd.lib" "fltk_imagesd.lib" "kernel32.lib" "user32.lib" "gdi32.lib" "winspool.lib" "comdlg32.lib" "advapi32.lib" "shell32.lib" "ole32.lib" "oleaut32.lib" "uuid.lib" "odbc32.lib" "odbccp32.lib" ^
"D:\code\VC++\Projects\test_fltk\test.cpp" /link /LIBPATH:"C:\Program Files\Microsoft Visual Studio\2022\Community\VC\Tools\MSVC\14.30.30705\ATLMFC\lib\x64" /LIBPATH:"C:\Program Files\Microsoft Visual Studio\2022\Community\VC\Tools\MSVC\14.30.30705\lib\x64" /LIBPATH:"C:\Program Files (x86)\Windows Kits\NETFXSDK\4.8\lib\um\x64" /LIBPATH:"C:\Program Files (x86)\Windows Kits\10\lib\10.0.22000.0\ucrt\x64" /LIBPATH:"C:\Program Files (x86)\Windows Kits\10\\lib\10.0.22000.0\\um\x64" /LIBPATH:"C:\packages\fltk-1.3.8\lib\Debug" 

オブジェクトファイル作成、実行ファイル作成に分ける場合は

cl /std:c++17 ^
/GS /W3 /Zc:wchar_t /ZI /Gm- /Od /sdl  /Zc:inline /fp:precise /D "_DEBUG" /D "_CONSOLE" /D "_UNICODE" ^
/errorReport:prompt /WX- /Zc:forScope /RTC1 /Gd /MDd /FC /c /diagnostics:column ^
/I"C:\packages\fltk-1.3.8\include" ^
"D:\code\VC++\Projects\test_fltk\test.cpp"
link ^
/DYNAMICBASE "fltkd.lib" "wsock32.lib" "comctl32.lib" "fltk_jpegd.lib" "fltk_imagesd.lib" "kernel32.lib" "user32.lib" "gdi32.lib" "winspool.lib" "comdlg32.lib" "advapi32.lib" "shell32.lib" "ole32.lib" "oleaut32.lib" "uuid.lib" "odbc32.lib" "odbccp32.lib" ^
/LIBPATH:"C:\Program Files\Microsoft Visual Studio\2022\Community\VC\Tools\MSVC\14.30.30705\ATLMFC\lib\x64" ^
/LIBPATH:"C:\Program Files\Microsoft Visual Studio\2022\Community\VC\Tools\MSVC\14.30.30705\lib\x64" ^
/LIBPATH:"C:\Program Files (x86)\Windows Kits\NETFXSDK\4.8\lib\um\x64" ^
/LIBPATH:"C:\Program Files (x86)\Windows Kits\10\lib\10.0.22000.0\ucrt\x64" ^
/LIBPATH:"C:\Program Files (x86)\Windows Kits\10\\lib\10.0.22000.0\\um\x64" ^
/LIBPATH:"C:\packages\fltk-1.3.8\lib\Debug" ^
"D:\code\VC++\Projects\test_fltk\test.obj"