Kirjautuminen

Haku

Tehtävät

Keskustelu: Ohjelmointikysymykset: MingW makefile

Malfunctioning Eddie [16.11.2020 20:47:33]

#

Yritin perehtyä Windows ohjelmoinnin alkeisiin joitain vuosia sitten, kunnes koko asia unohtui. Nyt olisi tarkoitus yrittää päästä näpertelemään jotain pientä ihan omaksi ilokseni.

Käytin joskus Borland Free compiler 5.5 , se on kuitenkin about 20 vuotta vanha. Testasin tuota uudempaa Embarcaderon Free compiler 7.2 mutta sen kanssa tuli odottamattomia ongelmia.

Sitten aloin testata MingW. Asensin Codeblocksin ja käänsin sen kanssa muutaman vanhan kokeiluni, hyvin toimi. Mutta en pidä siitä editorista.

Käänsin joskus kätevästi tuolla Borlandilla niin että samassa hakemistossa oli:

bcc32.cfg :

-I"d:\Test\bcc55\include;d:\Test\testi1"
-L"d:\Test\bcc55\lib;d:\Test\bcc55\lib\psdk"

ilink32.cfg :

-L"d:\Test\Bcc55\lib;d:\Test\bcc55\lib\psdk"

Sitten käytin oheista makefileä:

NAME=main
GUISTARTUP=c0w32.obj
LIBS=import32.lib cw32.lib comctl32.lib
CFLAGS=-O1 -c -tW -w-aus
LFLAGS=-Tpe -aa -w-rty

# the first rule will be made by default
all: $(NAME).exe

$(NAME).obj: $(NAME).cpp
        d:\Test\bcc55\bin\bcc32 $(CFLAGS) $(NAME).cpp

resource.res: resource.rc
        d:\Test\bcc55\bin\brcc32 resource.rc

$(NAME).exe: $(NAME).obj resource.res
        d:\Test\bcc55\bin\ilink32 $(LFLAGS) $(GUISTARTUP) $(NAME).obj,$(NAME).exe,,$(LIBS),,resource.res

Se siis ottaa myös resurssitiedoston yms.

Tämä toimi hyvin aikoinaan.

Nyt pitkän esittelyn jälkeen kysynkin, olisiko jollain laittaa vastaavaa esimerkkiä jota voisin käyttää MINGW:n kanssa?

Olen jotain kokeillut mutta huonolla menestyksellä, ja ne vähätkin taidot ovat ruosteessa vuosien tauon jälkeen.

Kiitos etukäteen.

Metabolix [16.11.2020 21:45:03]

#

Pääsisitkö vaikka tästä alkuun:

CXXFLAGS := -std=c++20 -Wall -pedantic -O2
CXX := g++
WINDRES := windres

FILES_H := $(wildcard *.h *.hpp)
FILES_CPP := $(wildcard *.cpp)
FILES_RC := $(wildcard *.rc)
FILES_O := $(patsubst %,BUILD-%.o,$(FILES_CPP) $(FILES_RC))

ohjelma.exe: $(FILES_O)
	$(CXX) $(CXXFLAGS) $^ -o $@

BUILD-%.cpp.o: %.cpp $(FILES_H)
	$(CXX) $(CXXFLAGS) $< -c -o $@

BUILD-%.rc.o: %.rc
	$(WINDRES) $< $@

Tarvitsetko oikeasti resurssitiedostoja? Jos et, voisit kääntää yksinkertaisesti C++-tiedostosi suoraan g++:lla.

g++ *.cpp -Wall -pedantic -std=c++20 -O2 -o ohjelma.exe

Ohjelmien ajaminen komentoriviltä, polkujen määrittely ym. on toivottavasti jo tuttua, sehän on Windowsissa kohtalaisen rasittavaa. Yleensä oikein asennetussa MinGW:ssä kai riittää, kun kutsuu oikeaa make-ohjelmaa tai lisää bin-kansion PATHiin.

Malfunctioning Eddie [16.11.2020 22:20:01]

#

Kokeilin kääntää esimerkin jossa oli ikkuna + yksinkertainen menu resurssitiedostoineen.

Ja.... Se toimi loistavasti.

Kiitos !


Tällä pääsenkin mukavasti eteenpäin ja voin unohtaa sen 20v vanhan Borlandin. :)

Vastaus

Aihe on jo aika vanha, joten et voi enää vastata siihen.

Tietoa sivustosta