Kirjautuminen

Haku

Tehtävät

Keskustelu: Ohjelmointikysymykset: Dev-C++: target pattern contains no %

Sivun loppuun

Lahha [27.04.2007 14:25:00]

#

Kun yritän kääntää yhtä ohjelm Dev-C++:llä tulee aina tämmöinen virhe: 26 C:\Dev-Cpp\Makefile.win [Build Error] *** target pattern contains no `%'. Stop.

Ja kun käännän MSVC:llä en saa ohjelmaa toimimaan muissa koneissa.

E:lisään tähän kun jos vastaan niin viesti menee johki ihan outoon aiheeseen.

Tossa vielä toi Makefile.win

# Project: Project1
# Makefile created by Dev-C++ 4.9.9.2

CPP  = g++.exe
CC   = gcc.exe
WINDRES = windres.exe
RES  =
OBJ  = "D:/Ohjelmointi/ikkuna\ testi/ikkuna\ testi/main.o" $(RES)
LINKOBJ  = "D:/Ohjelmointi/ikkuna testi/ikkuna testi/main.o" $(RES)
LIBS =  -L"C:/Dev-Cpp/lib" -L"D:/Ohjelmointi/SDL/lib" -mwindows D:/Ohjelmointi/SDL/lib/SDL.lib D:/Ohjelmointi/SDL/lib/SDL_ttf.lib D:/Ohjelmointi/SDL/lib/SDLmain.lib
INCS =  -I"C:/Dev-Cpp/include"
CXXINCS =  -I"C:/Dev-Cpp/lib/gcc/mingw32/3.4.2/include"  -I"C:/Dev-Cpp/include/c++/3.4.2/backward"  -I"C:/Dev-Cpp/include/c++/3.4.2/mingw32"  -I"C:/Dev-Cpp/include/c++/3.4.2"  -I"C:/Dev-Cpp/include"  -I"D:/Ohjelmointi/SDL/include"
BIN  = Project1.exe
CXXFLAGS = $(CXXINCS)
CFLAGS = $(INCS)
RM = rm -f

.PHONY: all all-before all-after clean clean-custom

all: all-before Project1.exe all-after


clean: clean-custom
	${RM} $(OBJ) $(BIN)

$(BIN): $(OBJ) <-----rivi josta valittaa!!!!!!!!!!!!!!
	$(CPP) $(LINKOBJ) -o "Project1.exe" $(LIBS)

"D:/Ohjelmointi/ikkuna\ testi/ikkuna\ testi/main.o": D:/Ohjelmointi/ikkuna\ testi/ikkuna\ testi/main.cpp
	$(CPP) -c "D:/Ohjelmointi/ikkuna testi/ikkuna testi/main.cpp" -o "D:/Ohjelmointi/ikkuna testi/ikkuna testi/main.o" $(CXXFLAGS)

tkarkkainen [27.04.2007 14:49:00]

#

Koodi?

Legu [27.04.2007 17:11:57]

#

Tämä aihe näyttää nyt bugaavan: http://koti.mbnet.fi/legutus/Ohjelmointiputka.png

EDIT: Leiskakin on hajalla, venynyt tuonne oikealle :/

Lahha [28.04.2007 17:44:37]

#

Olisi kiva jos joku tietäisi ratkaisun kun minulla on yksi toinen ongelma, mutta haluasin saada siitä toimivan esimerkin ennen kun rupean kyselemään. Ja oisi muutenkin mukaava että saisi jaettua omia tuotoksia.

InvalidCo [28.04.2007 17:53:30]

#

Kokeileppa kääntää käsin. Sitten kun sillä saat käännettyä sen, rukkaa Makefilea.

EDIT: Eipäskun hetkinen, piilisikö syy escapechareissa?
EDIT2: Kokeile poistaa nuo välilyöntejä edeltävät \-merkit.

Lahha [28.04.2007 18:00:22]

#

Eipä auttanut tuo \-merkkien poisto.

Nyt se valittaa
26 C:\Dev-Cpp\Makefile.win [Build Error] *** multiple target patterns. Stop.

pieslice [28.04.2007 19:33:58]

#

#include "D:\Ohjelmointi\Peli\ikkuna.h"

miksi absoluuttinen pathi?
ja vaihda noi includet näin, josko auttais...

#include <SDL/SDL.h> //hakemistot erotellaan mieluummin / merkillä kuin \ merkillä
#include "ikkuna.h"  //eli siis tähän ei pitäis laittaa absoluuttista pathia...

myös visual C++ kanssa kannattaa erotella hakemistot mieluummin kautta- kuin kenoviivalla.

Lahha [28.04.2007 21:29:38]

#

Tuo on sen takia että main.cpp on kansiossa D:\Ohjelmointi\ikkuna testi\ikkuna testi\main.cpp
Mut kopsasin tuon ikkuna.h:n samaan kansioon nyt ja muutin nuo includet. Eikä auttanut.

InvalidCo [28.04.2007 21:56:02]

#

Kokeile kääntää käsin. Siis ensin avaat command linen, sitten meet kansioon jossa mingw on, (jos se ei ole path-environment variablessasi) ja käännät ohjelmasi. Eli siis jotain seuraavan suuntaista:

g++.exe -o Project1.exe "D:/Ohjelmointi/ikkuna testi/ikkuna testi/main.cpp" -lSDL -lSDL_ttf -lSDLmain

Lahha [28.04.2007 23:11:41]

#

Pienen taistelun jälkeen sain sen löytämään kaikki tiedostot.

Tulee tollasia:
http://img80.imageshack.us/img80/7659/ffff222ws5.png

tgunner [28.04.2007 23:19:06]

#

Äh, kirjoita kuten PC-Master sanoi. Tuossa olet soveltanut aivan omiasi.

Lahha [28.04.2007 23:35:08]

#

Näköjään jäi tuo project1.exe epähuomiossa pois.

Nyt tulee noin:
http://img48.imageshack.us/img48/4999/eeeeeeevn9.png

tgunner [29.04.2007 00:57:56]

#

Sulla on g++.exe -o project1.exe "D:/ohjelmointi/ikkuna testi/ikkuna testi/main.cpp" -lsdl -lsdl_ttf -lsdlmain. Sä voisit kirjoittaa sen ilman tuota .exe-päätettä g++:ssä. Tykkään itse käyttää tätä rakennetta: g++ -s -o2 -o ulos.exe sisaan.cpp -liput, mutta itse ongelmaan:
Virheilmoitusten mukaan sulla on jotain häikkää itse ikkuna.h:ssa. Mitä tämä edes sisältää?

Lahha [29.04.2007 01:18:13]

#

Työn alla oleva ikkuna sydeemi.

Homma kääntyy MSVC:llä ongelmitta, mutta ei sitten toimi muissa koneissa.

(Mod. Edit. TGunner on väärässä, joten 560 riviä turhaa koodia poistettu.)

Metabolix [30.04.2007 00:40:41]

#

Mainittu ikkuna.h ei aiheuta kuin varoituksia. Virheet ovat linkkerivirheitä ja johtuvat nähdäkseni siitä, että yrität linkittää ties mitä SDL:n MSVC-versiota MinGW:n linkkerillä. Teepä ihan tavallinen pieni SDL-ohjelma ja kokeile kääntää ja linkittää se, niin selviää, onko näin. Kuitenkin nuo virheessä esiintyvät tiedostonimet (*.lib) viittaavat jonnekin muualle kuin GNU-linkkeriin, jonka kirjastot on yleensä nimetty muodossa lib*.a.

Mieleeni tulisi myös sellainen, että usein noissa taitaa olla linkitettävänä myös -lmingw32. Kokeile ehkä aivan ensiksi tätä.

Lahha [30.04.2007 01:08:02]

#

#include <SDL/SDl.h>

int main(int argc, char **argv)
{
    SDL_Init(SDL_INIT_VIDEO);

    SDL_Surface * nn;

    nn=SDL_SetVideoMode(1024, 768, 32, SDL_DOUBLEBUF|SDL_HWSURFACE);

    SDL_Delay(2000);

    SDL_FreeSurface(nn);

    SDL_Quit();
    return 0;
}

Tuon yrittää kääntää Dev-C++:lla tulee

  .drectve `/DEFAULTLIB:"uuid.lib" /DEFAULTLIB:"uuid.lib" /DEFAULTLIB:"MSVCRT" /DEFAULTLIB:"OLDNAMES" ' unrecognized
  [Linker error] undefined reference to `_alloca_probe'
  [Linker error] undefined reference to `_alloca_probe'
  [Linker error] undefined reference to `_alloca_probe'
  ld returned 1 exit status
 C:\Dev-Cpp\Makefile.win [Build Error]  [sdl1.exe] Error 1

ja kun käsin yrittää tulee vain
undefined refence to 'WinMain@16'

tuolla -lmingw32 ei ollu vaikutusta asiaan. Että on yhden ohjelman kääntäminen niin että saa sen muillakin koneilla toimimaan vaikeeta. Ennen joulua kun sain oman koneen ei ollu mitään ongelmia.

Metabolix [30.04.2007 01:27:12]

#

No jopas. Tosiaan nyt veikkaisin tuon peruteella yhä, että vääriä kirjastoja on liikkeellä. Melkeinpä suosittelisin Dev-C++:n asennusta puhtaalta pöydältä ja SDL:n ja kumppaneiden lataamista Dev-C++:n omalla päivitystoiminnolla.

Lahha [30.04.2007 01:43:33]

#

Siivosin ja Asensin sen uusiks. Ja SDL:n ja SDL_ttf:n Dev-C++:n omalla päivitystoiminnolla.

Edelleen Dev-C++ valittaa
26 C:\Dev-Cpp\Makefile.win [Build Error] *** target pattern contains no `%'. Stop.

Se ei edes mene etene itse koodiin. Valittaa samaa vaikka yrittäis kääntää tyhjää koodia.

ja käsin tulee toi
undefined refence to 'WinMain@16'

Metabolix [30.04.2007 14:14:28]

#

Tuli mieleen sellainenkin, että ei kai ympäristömuuttuja PATH sisällä MSVC:n ohjelmapolkuja niin, että tuo vahingossa käyttäisi väärää ohjelmaa automaattisesti kääntäessä?

WinMain@16 toisi ensiksi mieleen, että SDLmain-linkitys puuttuu... Muistelisin myös, että nuo ovat jostain syystä Windowsissa niin kieroja, että järjestyskin vaikuttaa.
-lmingw32 -lSDLmain -lSDL

Lahha [30.04.2007 14:43:04]

#

Kappas vain. Nyt onnistu ja käännetty ohjelma toimi ainakin olkkarin koneessa.

Kiitän kaikkia avusta!


Sivun alkuun

Vastaus

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

Tietoa sivustosta