[C++] .c files compileren als .cpp

Pagina: 1
Acties:

  • Rowwan
  • Registratie: November 2000
  • Laatst online: 21:23
Hoe kan ik .c files compileren als cpp files?? Standaard gaat de compiler er van uit dat .c staat voor C en .cpp voor C++.

Welke compiler optie kan ik hiervoor gebruiken of is het onmogelijk?

  • D2k
  • Registratie: Januari 2001
  • Laatst online: 31-08 10:19

D2k

welke compiler? welke software? welk OS?

Doet iets met Cloud (MS/IBM)


  • ArnoutD
  • Registratie: Juli 2000
  • Laatst online: 02-07 06:58
Het ligt eraan wat je wilt. Als je C door je C++ compiler wil sturen moet je even het "EXTERN C" commando in je code gebruiken. Als je cpp-code in .c files zet moet je ze renamen naar .cpp want je gaat .bmp ook niet .jpg noemen.

  • Tsjipmanz
  • Registratie: Oktober 2000
  • Laatst online: 13-05 14:52

Tsjipmanz

Der Rudi ist da

Waarom rename je niet de .c-bestanden naar .cpp ? Dan ziet hij het ook als .cpp bestand. Waarom wil je dit eigenlijk trouwens? c != cpp

There's no such thing as a mistake, just happy accidents - Bob Ross
Relaxte muziek: altijd okee!
- Soulseek rulez -


  • Rowwan
  • Registratie: November 2000
  • Laatst online: 21:23
Het is een GNU compiler...

Renamen is geen optie: Het zijn enkele honderden (duizenden) bestanden. Waarom ze zijn opgeslagen als .c weet ik ook niet. Het zijn dus wel c++ bestanden...

  • Tsjipmanz
  • Registratie: Oktober 2000
  • Laatst online: 13-05 14:52

Tsjipmanz

Der Rudi ist da

Op maandag 15 juli 2002 11:27 schreef Rowwan het volgende:
Het is een GNU compiler...

Renamen is geen optie: Het zijn enkele honderden (duizenden) bestanden. Waarom ze zijn opgeslagen als .c weet ik ook niet. Het zijn dus wel c++ bestanden...
Wat voor OS werk je onder? Normaal gesproken zijn zelfs duizenden bestanden vrij eenvoudig te renamen.

There's no such thing as a mistake, just happy accidents - Bob Ross
Relaxte muziek: altijd okee!
- Soulseek rulez -


  • Vlabakje90
  • Registratie: November 2001
  • Niet online
Als ze in 1 dir staan is het vrij simpel om in dos de files te renamen:

REN *.c *.cpp

En dan worden alle files met de .c extensie hernoemd zodat ze de .cpp extensie hebben.

  • Rowwan
  • Registratie: November 2000
  • Laatst online: 21:23
Ik (we) werk onder windows, maar de gegenereerde files zijn voor VxWorks...

We gebruiken onze eigen build engine die gebruikt maakt van de GNU compiler. Het is inderdaad mogelijk (de manier die nu gebruikt wordt) om voor elke build de files to copieren en te renamen... Ik hoopte eigenlijk dat er een compiler optie zou zijn...

  • igmar
  • Registratie: April 2000
  • Laatst online: 23-08 16:57

igmar

ISO20022

Op maandag 15 juli 2002 11:27 schreef Rowwan het volgende:
Het is een GNU compiler...

Renamen is geen optie: Het zijn enkele honderden (duizenden) bestanden. Waarom ze zijn opgeslagen als .c weet ik ook niet. Het zijn dus wel c++ bestanden...
Ik vrees dat je er toch aan vast zit, aangezien .c geen C++ code behoort te bevatten.

  • Tsjipmanz
  • Registratie: Oktober 2000
  • Laatst online: 13-05 14:52

Tsjipmanz

Der Rudi ist da

Veel editors, ook gratis editors hebben wel een soort van batch-rename functie, die je ook met onderliggende directories kan aanroepen. Zoiets kan voor jou binnen 30 seconden de hele bunch renamen, en je bent van het probleem af.

There's no such thing as a mistake, just happy accidents - Bob Ross
Relaxte muziek: altijd okee!
- Soulseek rulez -


Verwijderd

/me zucht: dit moet in de FAQ, ik beantwoord deze vraag gemiddeld 1x per week.

Je probleem: je gebruikt de verkeerde compiler om je sources te compilen. Gebruik gcc voor het compilen van C, gebruik g++ voor het compilen van C++.

  • MSalters
  • Registratie: Juni 2001
  • Laatst online: 21-08 17:14
Op maandag 15 juli 2002 11:10 schreef ArnoutD het volgende:
Het ligt eraan wat je wilt. Als je C door je C++ compiler wil sturen moet je even het "EXTERN C" commando in je code gebruiken. Als je cpp-code in .c files zet moet je ze renamen naar .cpp want je gaat .bmp ook niet .jpg noemen.
Onzin. extern "C" is nergens voor nodig. Bv. alle programma's in K&R zijn valide C++ programma's ook al gebruikt er geen een extern"C".

Man hopes. Genius creates. Ralph Waldo Emerson
Never worry about theory as long as the machinery does what it's supposed to do. R. A. Heinlein


  • MSalters
  • Registratie: Juni 2001
  • Laatst online: 21-08 17:14
Op maandag 15 juli 2002 11:34 schreef igmar het volgende:

[..]

Ik vrees dat je er toch aan vast zit, aangezien .c geen C++ code behoort te bevatten.
Dat is een persoonlijke opvatting, en g++ is't niet met je eens. Die compileert rustig .c files als C++ als je de goede optie meegeeft. ( -x c++ )

Man hopes. Genius creates. Ralph Waldo Emerson
Never worry about theory as long as the machinery does what it's supposed to do. R. A. Heinlein


  • farlane
  • Registratie: Maart 2000
  • Laatst online: 00:13
/TP in MS VC++

Somniferous whisperings of scarlet fields. Sleep calling me and in my dreams i wander. My reality is abandoned (I traverse afar). Not a care if I never everwake.


  • igmar
  • Registratie: April 2000
  • Laatst online: 23-08 16:57

igmar

ISO20022

Dat is een persoonlijke opvatting, en g++ is't niet met je eens. Die compileert rustig .c files als C++ als je de goede optie meegeeft. ( -x c++ )
Een quote van de regels die er onder staan :
Options starting with -g, -f, -m, -O or -W are automatically passed on to
the various sub-processes invoked by g++. In order to pass other options
on to these processes the -W<letter> options must be used.
Het zal MISSCHIEN werken, maar ja KAN er problemen mee krijgen omdat de linker het niet meer snapt. Ik weet niet wat g++ onder wat aanroept, maar een kwestie van uitproberen.

Met lang niet alle compilers kun je dit opgeven, dus ik zou gewoon de files renamen.

  • MSalters
  • Registratie: Juni 2001
  • Laatst online: 21-08 17:14
Op dinsdag 16 juli 2002 10:35 schreef igmar het volgende:

[..]

Een quote van de regels die er onder staan :
[Options starting with -g, -f, -m, -O or -W are automatically passed on to the various sub-processes invoked by g++. In order to pass other options
on to these processes the -W<letter> options must be used]

Het zal MISSCHIEN werken, maar ja KAN er problemen mee krijgen omdat de linker het niet meer snapt. Ik weet niet wat g++ onder wat aanroept, maar een kwestie van uitproberen.
Op zich maakt dat niet uit; g++/gcc gebruikt de x flag om te bepalen welke subprocessen moeten worden aangeroepen. Dus dat die flag niet verder wordt gepassed is niet zo erg, denk ik. De linker zou perfect in staat moeten zijn de .o te linken; de informatie daarin is voldoende. Bvb C++ namen worden in de .o gemangeld naar ongebruikelijke C namen.

Man hopes. Genius creates. Ralph Waldo Emerson
Never worry about theory as long as the machinery does what it's supposed to do. R. A. Heinlein


  • Rowwan
  • Registratie: November 2000
  • Laatst online: 21:23
Ik heb het geprobeert maar helaas geen succes |:(. Toch maar renamen dus...

Verwijderd

Op dinsdag 16 juli 2002 11:29 schreef Rowwan het volgende:
Ik heb het geprobeert maar helaas geen succes |:(. Toch maar renamen dus...
Andere g++ flag die het zelfde doet als -x c++:
-lang-c++
(renamen is echt een no-brainer)

Je krijgt alle(!) opties van g++ met het commando g++ -v --help
Pagina: 1