#„Visual Basic Script“-Ersatz in mingw und ohne Laufzeitbibliothek
#Leider ist die Echse einiges größer als die von MSVC2008
#Könnte an den „sauberen“ C++11-Verschiebekonstruktoren liegen.
#Bei MSVC ohne C++11 sind alles Raubkopierkonstruktoren.
#Ausgabeverzeichnis
O = ..\mingw64
#Installationsort von mingw
MINGW = c:/Programme/MSVC/mingw64
#Compiler-Optionen
COPT += -Os -s -fno-exceptions
COPT += -fno-ident
#COPT += --verbose
#COPT += -fno-stack-protector
#COPT += -fomit-frame-pointer
#COPT += -fno-unwind-tables
COPT += -fno-asynchronous-unwind-tables
#COPT += -falign-functions=1
#COPT += -mpreferred-stack-boundary=4
#COPT += -falign-jumps=1
#COPT += -falign-loops=1
#COPT += -ffreestanding bringt nichts
#-mconsole
#Problem: Quelle in ANSI wegen MSVC6. Funktioniert korrekt in ANSI und UNICODE.
#MinGW erwartet anscheinend valides UTF-8 bei L"", gibt's da eine Option?
#Jetzt ist alles mit Umlauten in Ressourcen
COPT += -DUNICODE -D_UNICODE
#Linker-Optionen
LOPT += -lkernel32 -luser32 -lshlwapi -lole32 -loleaut32 -luuid
LOPT += -nostdlib -nostartfiles -e WinMainCRTStartup
#LOPT += -Wl,--file-alignment,16,--section-alignment,16 geht nicht
LOPT += -Wl,--subsystem=windows:4.0,--nxcompat,--no-seh
all: $O/vbs.exe
$O/vbs.exe: *.cpp $O/main.res *.h Makefile
# mkdir $O
$(MINGW)/bin/gcc $(COPT) -o $@ $(filter %.cpp %.c %.res,$^) $(LOPT)
$O/main.res: main.rc main.ico manifest Makefile
$(MINGW)/bin/windres -o $@ -O coff $<
# Ausführen (Strg+F5 für Programmer's Notepad)
flash: $O/vbs.exe
$<
#Tipps von Tobias Lucas, inzwischen ohne Internet gelöst
#startupcode mingw github -matvext_nocrt0_customstartup code for gcc_mingw.html
#00program chris wellons
#Ungelöst: msvcrt.dll statt libstdc++-6.dll verwenden.
#Dieses Programm verwendet keinerlei Standardbibliotheksfunktionen,
#vom Sonderfall _alloca() abgesehen. Nicht mal new oder delete.
Detected encoding: UTF-8 | 0
|