Kommentarer
Svar
Disse samtalene kan ikke porteres, i det minste ikke direkte. gcnew
er ikke et C ++ nøkkelord, det er fra «C ++ / CLI», som er et annet språk som for øyeblikket ikke støttes av gcc. Dette eldre SO-spørsmålet sier at det var en gang et forsøk på å støtte det, men det ser ut til å være død siden 2009.
Den eneste rimelige måten for dette er å portere all den administrerte koden til standard C ++, så gcnew
og gcroot
trenger ikke lenger.
Svar
I tillegg til DocBrowns svar , kan du vurdere å bruke noe eksisterende søppelsamlerbibliotek (f.eks. Boehms conservati ve GC , eller RavenBrook «s MPS , eller din egen GC) i koden din. Se også dette .
Det er kanskje ikke lett å bruke en slik GC (det er ikke engang verdt smerten, og du kan bestemme deg for å bruke ekte C ++ manuell administrasjon og smarte pekere uten GC), og du må absolutt være klar over GC-teknikker, konsepter, terminologi og fallgruver. Så les GC-håndboken .
Legg merke til at du også kan vurdere å bruke noen eksisterende C ++ rammebiblioteker, for eksempel som Qt eller POCO eller Boost .
Du bør omskrive koden din til mer standard C ++ (f.eks. minst C ++ 14).
Kommentarer
- Sideanmerkning: når du porterer administrert kode til ikke-administrert, er den manglende GC ofte ikke det største problemet, hvis det i det hele tatt er et problem. Finn en erstatning for .NET framework-klassebibliotekene som brukes av programmet er.
g++
tilclang
bør være enkelt når du har gjort jobben din.