Hallo, ich programmiere gerade ein plugin für postgres, welches ich aber in C++ schreiben möchte. Leider kann der g++ das nötige PG_MODULE_MAGIC-Makro nicht kompilieren. Gibt es eine Möglichkeit, dieses mit dem gcc zu kompilieren und den Rest mit g++? Gibt es eine Preprozessordirektive, die g++ sagt, Programmteile mit gcc zu erstellen? Gruß Paul
Macros werden nicht compiliert, sondern mit Textersetzung im Sourcecode verwendet. Wenn Du also ein Macro in Deinem Sourcecode verwendest, und der sich deswegen nicht mit Deinem Compiler übersetzen lässt, kannst Du nicht "für das Macro" einen anderen Compiler verwenden. Wie äußert sich denn das "kann nicht kompilieren"? Da werden doch wohl Fehlermeldungen ausgegeben werden -- hast Du Dir die schon mal angesehen?
gcc ist kein C-Compiler, sondern ein Frontend für (unter anderem) C- und C++-Compiler. Mir wäre kein Weg bekann, mitten im Quellcode die Sprache umzuschalten. Ich weiß nicht, was dieses Makro macht, aber brauchst du das wirklich kreuz und quer in deinem ganzen Code?
Separat compilieren, extern "C" für C-Deklarationen im C++-Code nicht vergessen, dann alles brav mit einem vom g++ gesteuerten Linkeraufruf zusammenlinken.
Super, extern "C" war genau das, was ich suchte. Danke :)
Rufus Τ. Firefly schrieb: > Malte schrieb: >> Separat compilieren > > Ein Macro?! Den Teil, der das Makro benutzt. Deshalb auch meine Frage, ob dieses über den ganzen Code verteilt oder nur an einer einzigen Stelle genutzt wird.
Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.