Kirjautuminen

Haku

Tehtävät

Keskustelu: Ohjelmointikysymykset: C++: MinGW:llä käännetty ohjelma ei toimi?

Sivun loppuun

mingw [17.07.2016 18:53:38]

#

Hei,

Asensin äskettäin C++-kääntäjän täältä: https://sourceforge.net/projects/mingw/files/
(mingw-get-setup.exe / 2013-10-04)

Saan koodin käännettyä normaalisti, mutta käännetty executable jostain syystä kaatuu, kun yritän tulostaa terminaaliin tekstiä.

#include <iostream>
using namespace std;
int main() {
	cout << "Hello world!\n" << endl;
}

Jos endl:in jättää lopusta pois, niin koodi toimii normaalisti. Ongelmat ovat saman suuntaisia, mitä täällä on raportoitu:
http://stackoverflow.com/questions/11975941/simple-program-crashes

Eli käännösoptiolla -O3 ylläoleva koodi toimii oikein. Kokeilin myös ketjussa neuvottuja mingw-get update & mingw-get upgrade, reinstall komentoja, mutta ne eivät auttaneet. Onkohan tämä vain tilapäinen ongelma?

fergusq [17.07.2016 19:08:43]

#

Mihin ohjelma kaatuu? Kokeile ajaa ohjelma debuggerilla ja katso missä funktiossa virhe tapahtuu.

Luultavasti joko käytät kääntäjää väärin tai sitten se on asennettu väärin. Kokeile asentaa se uudestaan ja jos ei toimi, niin eri versio.

Näyttää siltä, ettei Mingw:tä projektina ole kehitetty vähään aikaan. Voisi olla kannattavaa vaihtaa uudempaan alustaan, johon julkaistaan säännöllisiä korjauspäivityksiä.

mingw [17.07.2016 19:27:20]

#

Hei,

Mitenkäs tuommoista koodin pätkää nyt oikein debugattiin (on kulunut jo jonkin aikaa, kun viimeksi C++:lla koodailin)? Ilmeisesti ainakin -g käännösoptio piti
antaa? gdb asentui tuossa mukana, mutta en enää muista kuinka sitä piti käyttää?

g++ -g -Wall hello.cpp -o hello
(gdb) run
Starting program: hello.exe
[New Thread 10800.0x1cdc]
[New Thread 10800.0xb00]
[New Thread 10800.0x11a4]
[New Thread 10800.0xc50]
Hello world!

Program received signal SIGILL, Illegal instruction.
0x0040a0c1 in _Jv_RegisterClasses ()

Onko tästä mitään apua?

fergusq [17.07.2016 19:51:10]

#

Stackoverflow'n mukaan käätäminen lipukkeella -static-libstdc++ voisi auttaa.

Suosittelen yhä, että vaihdat MinGW:stä johonkin muuhun käännösalustaan.

mingw [17.07.2016 20:06:03]

#

Tuolla lipulla myös toimii. Eli jotain häikkää tuossa nykyisessä asennuksessani on. Täytyypä katsella jostain hieman uudempi kääntäjä.

mingw [21.07.2016 14:08:13]

#

Hei,

Olisiko jollakin suositella C++-kääntäjää Windowsille? Mielellään en haluaisi Visual Studion kääntäjää ja ainakin C++11-standardi olisi hyvä olla tuettuna.

Metabolix [21.07.2016 17:22:02]

#

Yksi vaihtoehto on MinGW-w64, josta löytyy myös GCC 6 ja kokeellisena GCC 7.

jlaire [21.07.2016 17:55:23]

#

Clang toimii ihan hyvin Windowsilla. http://llvm.org/releases/download.html


Sivun alkuun

Vastaus

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

Tietoa sivustosta