Kezdőoldal » Számítástechnika » Programozás » Egy Code::Blocks-ban megirt...

Egy Code::Blocks-ban megirt mukodo c++ban irt program forraskodjat mas compiler-eknek is tudniuk kellene futtatni?

Figyelt kérdés
2013. júl. 2. 12:10
 1/8 anonim ***** válasza:
100%
A compiler nem futtat, hanem fordít. Amúgy igen, le kell tudnia fordítani, ha a szükséges függvénykönyvtárak és header fájlok is rendelkezésre állnak, és meg vannak adva a fordítónak.
2013. júl. 2. 12:16
Hasznos számodra ez a válasz?
 2/8 iostream ***** válasza:
69%
Nem. Miért kéne? Minden C++ fordító saját dialektust jelent, sőt, az egyes kapcsolók is variálják az elfogadott programokat. Egy 4.7-es gcc-vel fordított program nem feltétlenül fog lefordulni 4.3-as gcc-vel, msvc-vel meg főleg nem.
2013. júl. 2. 12:53
Hasznos számodra ez a válasz?
 3/8 anonim ***** válasza:

"Miért kéne?"

A szabványos szintaktika miatt. Ha a fordítónak szóló speckó direktívákat használ az ember, akkor persze az a fordítóhoz köti a kódot, ez nyilvánvalóan igaz.

Ha meg egyéb dialektusokat használ, akkor azt csak nagyon laza értelemben nevezhetjük C++-nak. :) C++ alatt az ANSI szabványnak megfelelő kódot értem. Fordító alatt meg ami tudja a megfelelő szabványt. (Olyan persze lehet, hogy egy régi fordító még nem ismer egy újonnan bevezetett szintaxist, de ilyen alapon akkor tényleg egyik kód sem lenne hordozható, amit annak titulálnak.)

2013. júl. 2. 13:18
Hasznos számodra ez a válasz?
 4/8 iostream ***** válasza:

Nalátod :) Variadic template pl még mindig nincs msvc-ben, sem default/deleted függvények.


A fordítók rengeteg kiterjesztést adnak, ha használod, már nem hordozható a kódod más fordítóra, ami nem feltétlenül baj, viszont tény.

2013. júl. 2. 14:14
Hasznos számodra ez a válasz?
 5/8 anonim ***** válasza:

Nem vitázni akarok, mert látom, hogy jobban benne vagy a témában. :)

De azért szerintem pl. a variadic template is egyfajta c++ szabvány (lett), és ha egy fordító naprakész, akkor ismernie kell. Ezért írtam, hogy ilyen alapon nem létezik hordozható forráskód, legyen az Java, c#, stb. Ami meg nem része a szabványnak, az csak nagy jóindulattal c++.


Na mindegy, akkor úgy fogalmazok, hogy elvileg az ANSI c++ hordozható, gyakorlatilag meg attól függ.

Respect. :))

2013. júl. 2. 15:18
Hasznos számodra ez a válasz?
 6/8 iostream ***** válasza:
Igen, teljesen igazad van, nem azzal van a gond, a kérdező kérdése fura. Semmi sem garantálja, hogy tetszőleges fordító fogja fordítani, ellenben népszerű fordító által fordított kódot jó eséllyel másik népszerű fordító meg fog enni.
2013. júl. 2. 15:42
Hasznos számodra ez a válasz?
 7/8 Ivan Iljics válasza:
CodeBlocks alapbeállítátott fordító megeszik olyanokat amit a Visual Studio alapfordítója helyből kiköp ha erre gondolsz.
2013. júl. 3. 01:37
Hasznos számodra ez a válasz?
 8/8 anonim ***** válasza:

Arról meg nem is beszéltünk még, hogy milyen architektúrán, és milyen oprendszeren fordítom. Egy Win32-höz írt, alacsony szintű hívásokat tartalmazó kód valszeg nem fog lefordulni Linux-hoz. (De magas szintű könyvtárakat használva sem biztos. Vagy lefordul, de nem úgy viselkedik a progi.) Egy oprendszer nélküli kütyühöz meg pláne, pl. egy AVR vagy Z80 áramkörre. Pedig azokhoz is van c++ fordító.

Szóval tényleg attól függ.. :)

2013. júl. 3. 08:57
Hasznos számodra ez a válasz?

Kapcsolódó kérdések:





Minden jog fenntartva © 2024, www.gyakorikerdesek.hu
GYIK | Szabályzat | Jogi nyilatkozat | Adatvédelem | Cookie beállítások | WebMinute Kft. | Facebook | Kapcsolat: info(kukac)gyakorikerdesek.hu

A weboldalon megjelenő anyagok nem minősülnek szerkesztői tartalomnak, előzetes ellenőrzésen nem esnek át, az üzemeltető véleményét nem tükrözik.
Ha kifogással szeretne élni valamely tartalommal kapcsolatban, kérjük jelezze e-mailes elérhetőségünkön!