64-bites C/C++ fordító Windowson

 ( mrev | 2012. szeptember 25., kedd - 15:44 )

Sziasztok,

10+ éve nem láttam Windowst, ezért most nem ismerem ki magam a témában. Kérdésem, milyen eszközökkel fordítunk manapság C/C++ programot 64 bites Windows 2012 szerveren? Natív 64 bites programot akarok fordítani parancssorból.

Amit eddig csináltam: Telepítettem a Windows SDK-t (version 8.59.25584), de ebben nincs cl.exe, vagy talán most máshogy hívják a fordítót?

Hozzászólás megjelenítési lehetőségek

A választott hozzászólás megjelenítési mód a „Beállítás” gombbal rögzíthető.

Először az MS cuccait szeretném kipróbálni.
--
ulysses.co.hu

visual studio 2012
___
info

ingyen szeretnél C fordítót? hová gondolsz? :)
az SDK AFAIK nem tartalmaz C fordítót, ehhez kell egy valamilyen visual studio

Az MS fordítók ingyenesek, csak nem tudom melyik csomag, ami nekem kell.
--
ulysses.co.hu

Visual Studio Express?

Windows 2000-hez jó volt a VCToolkit és a Platform SDK. Ingyen letölthetők, de úgy tudom, hogy az ingyenesség csak a cli fordító eszközöre vonatkozott. Az előbbiek még a Windows 2003-hoz is jók voltak, mostanra azonban feltehetően változtak a dolgok. Azért egy ilyen névvel, hogy Visual Studio nem sokra megyek.

Továbbra is a kérdés: Hol, mely csomagban van a Windows 2012-höz passzoló 64 bites (de minimum 64 bites programot készítő) cl.exe?

--
ulysses.co.hu

azt hiszem visual studio express kell neked

Ahogy látom, ez a Visual Studio egy pénzes szoftver. Szerintem lennie kell valami "studio" nélküli, csak a parancssoros eszközöket tartalmazó csomagnak. Az kéne nekem.
--
ulysses.co.hu

a visual studio penzes, a visual studio express meg nem

---
Egy jól megállapított probléma félig megoldott probléma.
- Charles Kettering

Ha jol emlekszem Windows Server-re nem is megy fel. :)

Hat nem jol emlekszel. 2003-ra helybol felmegy, de szerintem 2008-ra is. Talan Core-ra nem megy.
--
Ki oda vagyik, hol szall a galamb, elszalasztja a kincset itt alant. | Gentoo Portal

A WP7-re fejleszteshez valo verzio biztosan nem megy fel. Szivtam vele eleget.

Az valami hakkolt VS, mas sebbol is verzik (nagyon szidjak masutt is).
--
Ki oda vagyik, hol szall a galamb, elszalasztja a kincset itt alant. | Gentoo Portal

Visual Studio Express: 30 napos próba.
--
ulysses.co.hu

Na, ezt nem hiszem.

(nod) ez igy van. de utana ingyen regelheto, Live ID kell hozzaja.
--
Ki oda vagyik, hol szall a galamb, elszalasztja a kincset itt alant. | Gentoo Portal

afaik a DDK-ban van 64bites, de lehet azota az expressbe is raktak, de ezt most nem tudom megnezni

--
NetBSD - Simplicity is prerequisite for reliability

Sajnos a 2010-es Express-be sem rakták bele a 64-bites fordítást, de van egy workaround, ami már a korábbi kiadásokkal is ment: fel kell tenni a Windows SDK-t (ez is free).
http://msdn.microsoft.com/en-us/library/9yb4317s.aspx
http://msdn.microsoft.com/en-us/library/h2k70f3s.aspx

pl itt (amit aztán elronthatsz egy vs sku telepítésével)

Szia!

A fordító nem a cl, hanem az msbuild, a cl pedig azt hiszem a linker, de persze kell a fordításhoz az is.

Az msbuild elvileg a .Net frameworkben van, a cl viszont tényleg a Windows SDK-ban van benne, fel kell tenni az SDK-nak a C++ compiler részét.

Annyi, hogy fordítás előtt el kell indítani a valamilyen bat fájlt, ami beállítja a szükséges környezeti változókat a buildeléshez. Ennek kell megadni, hogy 64 bitest akarsz fordítani valamilyen kapcsolóval (talán /x64, de meg tudod nézni).

Amúgy most nagyon képben vagyok a kérdésben, épp most csináltam hasonlót, szóval kérdezz nyugodtan.

Nagyon képben vagy vs. msbuild=fordító? :)

--
joco voltam szevasz

Mint ahogy a nevéből is látszik, igen, az fordító, azzal lehet a VS projekteket lefordítani VS nélkül. De abban igazad van, hogy a cl a c fordító, az msbuild azt indítja el a c projektek fordításához.

Ja igen, nekem VS studio projektet kellett fordítani VS nélkül...

Mások is leírták már, hogy nem az a szó hagyományos értelmében. De azt még elárulom, hogy belül a VS is MSBuild-et használ.

--
joco voltam szevasz

Jujj.

msbuild inkább make.

Talan inkabb nmake. De egyik se tud mit kezdeni vcproj fajlokkkal.
--
Ki oda vagyik, hol szall a galamb, elszalasztja a kincset itt alant. | Gentoo Portal

Én csak analógiára gondoltam. Ha hasonlítanád valamire, akkor inkább olyan, mint egy make program.
De nem fordító, az biztos.

Jaa. Felreertettem.
--
Ki oda vagyik, hol szall a galamb, elszalasztja a kincset itt alant. | Gentoo Portal

Milyen ha nem vagy képben?

MSBuild: build system (analógia: make, nmake, stb.)
cl: C/C++ fordító (analógia: gcc, icc, clang)
link: linker (analógia: ld)
Környezeti változók: vcvars32.bat vagy vcvars64.bat

Az utóbbi három része a Visual Studionak, a Visual Studio Expressnek, a WDK-nak (bár ez utóbbit nem ajánlom). Az SDK-ban szerintem nincs benne, de ez nem biztos.

"...handing C++ to the average programmer seems roughly comparable to handing a loaded .45 to a chimpanzee." -- Ted Ts'o

Rakd fel a Visual Studio Express-t.

CMake-et használj meta buildernek, az tud generálni makefile-okat, amik az msvc-t, a Ms C/C++ fordítóját használják. így nem fosztod magad az nmake begépelésének az élményétől.

Nekem ez így működik, pofon egyszerű, még Qt-t is tudja.

A 64-bites fordítás az elmélet, sosem próbáltam, de nem látom miért ne működne.

Ha nem msvc-vel, akkor mingw-vel biztosan.

Jó régen használtam már, de talám az lcc-win is jó lehet
http://www.cs.virginia.edu/~lcc-win32/

Ha majd mást is ki szeretnél próbálni MS-en kívül, emlékeim szerint csak C fordító:

http://www.smorgasbordet.com/pellesc/

A fentebb említett LCC-ből indult.


"Belépés díjtalan, kilépés bizonytalan."

Tedd fel a VC Express-t, abban lesz.

Egyre figyelj oda, hogy van _kulon_ olyan konzol, ahol 64 bites forditod van, illetve ezt a telepitoben is ki kell valasztni a megfelelo opciokat hozza (az Itaniumot meg tiltsd le).

Illetve meg egy jotanacs: VC 2008 -nal frissebbet ne akarj. A legtobb opensource projekt ezzel van csak tesztelve, es ezzel mukodik faszan. Az ujabbak felejtosek.
--
Ki oda vagyik, hol szall a galamb, elszalasztja a kincset itt alant. | Gentoo Portal

Köszönöm az infót, ezzel futok még egy kört.
--
ulysses.co.hu

A máshol felvetett dolgokra is itt válaszolok.

Visual Studio Express for Windows 8: 30 napos próba.

Felment a 64 bites Windows 2012 szerverre.

A parancssoros fordítót cl.exe-nek hívják.

Sajnos nem úgy van, ahogy gondoltam, azaz jelenleg nincs ingyenes 64 bites MSC compiler. A VC Toolkit 2003 csomag nyomai megvannak még az interneten, nekem is van belőle egy példány, de nincs neki modernebb folytatása. A régi VCToolkit2003 most is használható, de csak 32 bites programokat lehet vele készíteni.

A 64 bites compiler ahhoz kell, hogy a CCC-t portoljam 64 bitre Windowson. (Megj: Linuxon, BSD-n 2004 óta megy 64 biten is.) Részemről ez egy hobbi project. Az esetleges felhasználóknak is szükségük van ugyanarra a C compilerre, úgyhogy egy fizetős compiler nem opció. Marad tehát a MinGW.

--
ulysses.co.hu

>> jelenleg nincs ingyenes 64 bites MSC compiler

mármint neked nincs

"Visual Studio Express for Windows 8: 30 napos próba."
Mint lentebb írták, kérni kell egy serialt hozzá ami ingyenes. Csak Live ID kell hozzá.
---
/* No comment */
Ketchup elementál megidézése a sajt síkra

Pedig snq- megmutatta neked, hogy melyik csomagban van, csak elsiklottál felette.

"A régi VCToolkit2003 most is használható, de csak 32 bites programokat lehet vele készíteni."

Tévedés. A 2003-as cuccokban már van 64 bit támogatás. A Toolkit-ben a compilerek a Windows Server 2003 SDK-ban a könyvtárak. 10 éve használom, de csak most vettem észre. Először ezeket próbálom ki.

Szerk.

Meg is van a nagyja. Az +1000 cpp forráshoz 5 helyen kellett hozzányúlni: ahol korábban implicit cast volt, most be kellett írni a size_t-ről double-ra konverziót.

A build rendszerhez minimálisan kellett hozzányúlni: ki kellett hagyni két deprecated fordítási opciót, viszont hozzáadni a bufferoverflowu lib linkelését.

Tisztán csak a PATH, INCLUDE, LIB változók beállításán múlik a 32 vs. 64 bit.

Most van egy rakás 64 bites program, amik nincsenek ugyan agyontesztelve, de sok baj már nem lehet vele, ha le tudták magukat fordítani. Meg ugye ez egy veremgép, amiben mindenhol ugyanazok a primitívek futnak. Ami még kell: 64 bites ssl, pcreposix, gtk könyvtárak. Ezeket majd MinGW-vel.

Végül a pontos nevek, hogy mikkel dolgoztam:

Visual C++ Toolkit 2003 (öninstalláló exe)
Platform SDK Collection for Windows Server 2003 SP1 (CD ISO)

Ezeket még a saját idejükben begyűjtöttem, ingyenesek, nem időkorlátosak, talán még most is le lehet őket tölteni. Tévesen föltételeztem, hogy ezek a régi eszközök nem támogatják a 64 bitet, egyébként nem hozom létre a topicot.

Ahol mindezt csinálom: egy Ubuntu Natty qemuban futó 64 bites Windows 2012 szerver (180 napos próba).

--
ulysses.co.hu

Ha már úgyis Linux alól szenvedsz, miért nem mingw cross-compile? Igaz kb 6 éve csináltam ilyet gentoo alól, de akkor problémamentes volt, gondolom azóta sem lett nehezebb...

"...handing C++ to the average programmer seems roughly comparable to handing a loaded .45 to a chimpanzee." -- Ted Ts'o

Miféle szenvedés?

Érdemes tudni a MinGW-w64 projektről. A projekt célja 32 és 64 bites Windowsra fordító GCC-k előállítása. A MinGW-w64 compilerek mindenféle platformon futnak: 32 és 64 bites Windowson, Linuxon, Darwinon, Cygwinen, vagyis keresztfordításról van szó. Vastagon használom, de mivel nincs vele probléma, nem erről szólt a topic.

Mire használom a C fordítókat:

A C nekem a CCC-hez kell. A CCC egy Clipper szerű nyelv, ami a Clipper kódot C-re fordítja. A CCC fordításnak ezért mindig része a C fordítás. Unix/Linuxokon mindenhol a GCC-t használom, Windowson a GCC-t és (!) az MSC-t, de az utóbbiból csak a 2003-as régi változatot, az újabbakkal nem volt szerencsém, túlságosan nem is érdekel.

A Clipperből generált kóddal sosincs gond. Kellenek viszont olyan külső könyvtárak, mint az OpenSSL, amiket baromi nehéz Windowson lefordítani. Itt jön képbe a MinGW-w64 keresztfordítási képessége. Ubuntun prímán lefordítja az OpenSSL-t 32 és 64 bites Windowsra is.

--
ulysses.co.hu

"Miféle szenvedés?"
A teljes thread fentebb. :)

Egyébként qemu+windows server 180-napos próba és hasonlók. Ha már úgy is MinGW-t is használsz, és úgyse azért kell az MSVC mert jobb kódot generál, vagy linkelned kell az eredmény mással, akkor tán egyszerűbb hagyni a francba.

Just my 2 cents.

"...handing C++ to the average programmer seems roughly comparable to handing a loaded .45 to a chimpanzee." -- Ted Ts'o

A CCC karbantartását csinálom. Nagyon könnyű dolgozni qemuban futó Windows-zal, FreeBSD-vel, NetBSD-vel. Leegyszerűsödött az élet, mióta ilyen frankón működik a qemu. Nem kell a ritkán használt rendszerekre külön gépet fenntartani, vagy folyton installálni, diszket ki-be dugdosni meg effélék. Mindig kéznél van és kész.

Valóban, mindig felvetődik, hogy az MSC-t el kéne hagyni. Nem is annyira az MSC-vel van gond, hanem hogy nehéz megszerezni a vele kompatibilis opensslt, regexpet és hasonlókat. De egyelőre még megy.

--
ulysses.co.hu

"Leegyszerűsödött az élet, mióta ilyen frankón működik a qemu."

Kvm-mel használod, vagy valamiről nagyon lemaradtam?

Nem értek hozzá, de úgy rémlik, hogy valahogy egyesítették a qemu és a kvm projektet. Mindenesetre Ubuntu Nattyn a gyárilag benne levő "qemu-kvm" csomagot használom.
--
ulysses.co.hu

= "KVM-et hasznalok"

Nem egyesitettek, hanem a QEmu-nak az egyik alprojektje a KVM, ami erosen epit a processzor alapu virtualizaciora (ugye a kqemuhoz meg erre nem volt szukseg). Viszont ezt leszamitva, minden szempontbol QEmu, meg a parancssori felulet is.
--
Ki oda vagyik, hol szall a galamb, elszalasztja a kincset itt alant. | Gentoo Portal

Idézet:
A C nekem a CCC-hez kell. A CCC egy Clipper szerű nyelv, ami a Clipper kódot C-re fordítja.

Akkor nezd meg a Harbour-t is, az tud mindenfele OS-re forditani (MS-DOS, Windows (32 & 64), Windows CE, Pocket PC, OS/2, Linux, Mac OS X).

Mi a DOS-on futo (Clipper-ben irt) ugyviteli rendszerunket forditottuk le vele (64 bites) Linuxra, lassan ket eve megy elesben, es koszoni, mukodik.

Felreerted, o nem egy clipper compilert keres, amennyire tudom, o tartja karban a CCC-t.
--
Ki oda vagyik, hol szall a galamb, elszalasztja a kincset itt alant. | Gentoo Portal

Akkor nem szoltam :-)