Megjegyzések
Válasz
Ezeket a hívásokat nem lehet portolni, legalábbis közvetlenül nem. gcnew
nem C ++ kulcsszó, hanem a “C ++ / CLI” -től származik, amely egy másik nyelv, amelyet a gcc jelenleg nem támogat. Ez a régebbi SO kérdés szerint egyszer megpróbálta támogatni, de úgy tűnik, hogy 2009 óta halott.
Ennek egyetlen ésszerű módja az, hogy az összes kezelt kódot C ++ szabványba portálja, majd gcnew
és gcroot
nem lesz többé szükség.
Válasz
A DocBrown válaszon kívül fontolhatja meg néhány meglévő szemétgyűjtő könyvtár használatát (pl. Boehm konzervativusa ve GC , vagy RavenBrook MPS , vagy saját GC) a kódban. Lásd még ezt .
Lehet, hogy nem könnyű használni egy ilyen GC-t (lehet, hogy nem is éri meg a fájdalmat, és eldöntheti hogy eredeti C ++ kézi kezelést és intelligens mutatókat használjon GC nélkül), és mindenképpen tisztában kell lennie a GC technikáival, fogalmaival, terminológiájával és buktatóival. Tehát olvassa el a következőt: A GC kézikönyve .
Vegye figyelembe, hogy fontolóra veheti néhány létező C ++ keretrendszer-könyvtár használatát is mint Qt vagy POCO vagy Boost .
Alapvetően át kell írnia a kódot szabványosabb C ++ – ra (pl. legalább C ++ 14).
Megjegyzések
- Megjegyzés: Ha a kezelt kódot nem felügyeltre portálja, akkor a hiányzó GC általában nem a legnagyobb probléma, ha egyáltalán probléma. Keressen egy helyettesítést a program által használt .NET keretrendosztály-könyvtárak számára.
g++
-ről aclang
-re váltásnak egyszerűnek kell lennie, miután elvégezte a munkáját.