Kirjautuminen

Haku

Tehtävät

Keskustelu: Ohjelmointikysymykset: C++: SDL kääntämisongelma

punppis [31.08.2007 00:01:24]

#

Oon saanut tarpeekseni tosta dev-cpp:n tekstieditorista, joten rupesin vääntään koodia notepad++:lla. Tämän takia pitäs sitten tehdä kääntö komentorivin puolella, mutta se tuottaa harmaita hiuksia :(

C:\Dev-Cpp\bin>gcc d:\ljv\main.c -o d:\ljv\ljv.exe -lSDL
gcc: installation problem, cannot exec `cc1': No such file or directory

Googlasin hetken, ja gcc:n jossain faqissa luki, että samassa kansiossa gcc.exen kanssa pitäisi olla cc1.exe. Kopioin tuon kyseisen tiedoston joka löytyi kansiosta Dev-Cpp\libexec\gcc\mingw32\3.4.2 kansioon Dev-Cpp\bin\, jossa siis gcc.exe sijaitsee. Silti tulee virhettä, mutta erilaista:

C:\Dev-Cpp\bin>gcc d:\ljv\main.c -o d:\ljv\ljv.exe -lSDL
d:\ljv\main.c: In function `SDL_main':
d:\ljv\main.c:45: error: `bool' undeclared (first use in this function)
d:\ljv\main.c:45: error: (Each undeclared identifier is reported only once
d:\ljv\main.c:45: error: for each function it appears in.)
d:\ljv\main.c:45: error: syntax error before "pois"
d:\ljv\main.c:51: error: `pois' undeclared (first use in this function)
d:\ljv\main.c:51: error: `false' undeclared (first use in this function)
d:\ljv\main.c:55: error: `true' undeclared (first use in this function)

Koodissa ei kuitenkaan ole virheitä, sillä dev-cpp:n kautta kääntäminen onnistuu täysin samalla koodilla. Missä vika? Koodi on suoraan otettu Ohjelmointiputkan SDL-oppaasta.

Zach [31.08.2007 01:34:22]

#

Standardi-C:n syntaksista ei löydy bool-tyyppiä, sen sijaan C++:sta löytyy. Käytä bool:in sijasta vaikka int:iä tai käännä ohjelma C++-kääntäjällä korvaamalla em. kääntökomentosi "gcc" pätkällä "g++".

punppis [31.08.2007 18:47:08]

#

Kiitos. Nyt kääntyy hyvin (C:\Dev-Cpp\bin\g++ ohjelma.cpp -o ohjelma.exe -lmingw32 -lSDLmain -lSDL). Yksi ongelma on vielä. Käännetty .exe valittaa, ettei löydy SDL.dll tiedostoa. Tämä ongelma ratkeaa sillä, että kopioi tuon SDL.dll:n tuon exen kanssa samaan kansioon, mutta ei viitsisi jokaiselle kokeiluohjelmalla tuollaista tehdä. Dev-Cpp:n kanssa kun käänsi, niin ei tuota SDL.dll:ää tarvinnut erikseen mihinkään kopioida, vaan ohjelma toimi suoraan.

Olen kopioinut tiedoston jo Windows/System32-kansioon, mutta tuloksetta. Johtunee Windows Vistasta?

E: Kun alla on Windows Vista 64-bit niin täytyy olla tuo tiedosto näemmä Windows/System-kansiossa

aegis [01.09.2007 01:56:32]

#

punppis kirjoitti:

Olen kopioinut tiedoston jo Windows/System32-kansioon, mutta tuloksetta. Johtunee Windows Vistasta?

E: Kun alla on Windows Vista 64-bit niin täytyy olla tuo tiedosto näemmä Windows/System-kansiossa

Huomaa ero lukujen 32 ja 64 välillä.

Vastaus

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

Tietoa sivustosta