Come portare il programma cli c ++ con le librerie GNU da Windows a Linux

2

Ho bisogno di implementare alcuni algoritmi di partizionamento grafico per la mia tesi. Ho per lo più esperienza di Windows. Vorrei sapere se è difficile migrare il programma di console c ++ su Linux. Voglio programmarlo su Windows ma voglio testarlo e compilarlo anche su Linux. Sarà pura applicazione cli, senza l'uso di Windows APi o altro. Ho solo bisogno di usare alcune librerie esterne. In particolare il kit di programmazione lineare GNU e la libreria scientifica GNU GSL. Ho scoperto, ci sono versioni di Windows di queste librerie, cosa significa per me ?, dovrei compilarlo su Windows con il pacchetto di versione di Windows e su Linux con il pacchetto linux. Mi piacerebbe che qualcuno portasse un po 'di chiarezza a questo, io non sono un programmatore molto esperto, quindi qualsiasi consiglio ti sarà d'aiuto. Inoltre vorrei chiedere, se c'è diferenza se uso Visual Studio per la programmazione o qualche altro IDE in materia di problemi di portabilità. Grazie in anticipo per qualsiasi aiuto.

    
posta John Peca 29.04.2013 - 08:16
fonte

2 risposte

3

La prima cosa da ricordare è che, sebbene il codice sorgente C ++ possa essere portato tra Linux e Windows, i binari compilati non possono essere scambiati (almeno non senza usare il software di emulazione).

Per creare un'applicazione portatile, l'opzione migliore è rimanere con codice C ++ standard e librerie portatili. Per le librerie, puoi costruirle tu stesso dal sorgente o puoi usare versioni predefinite. In quest'ultimo caso, dovresti assicurarti di installare la stessa versione della libreria su ogni piattaforma per evitare di incorrere in incompatibilità a causa delle diverse versioni.

Per assicurarti che il tuo codice rimanga portatile e non inizi a utilizzare accidentalmente costrutti specifici del compilatore, ti consiglio di compilare regolarmente il tuo codice per Windows e Linux. In questo modo riceverai un avviso tempestivo invece di avere una pila di lavoro alla fine.

    
risposta data 29.04.2013 - 09:39
fonte
0

Si noti che è possibile eseguire la compilazione incrociata utilizzando GCC , con i giusti flag e opzioni del compilatore e un'installazione di mingw , puoi compilare i binari di Windows su Linux (ovviamente hai vinto ; essere in grado di eseguirli su Linux a meno che non si installi vino )

Per un'app a linea di comando, dovresti essere a posto - dipende da quante chiamate di sistema specifiche di Windows fai che dovranno essere sostituite con equivalenti di Linux, sebbene ci siano alcune librerie multipiattaforma che potrebbero supportare queste chiamate.

Per lo sviluppo multipiattaforma Se stai cercando un IDE multipiattaforma, devi scaricare lo studio visivo per uno degli altri. Per C ++, c'è Qt Creator o Code :: blocks che funzionano entrambi su Windows e Linux.

    
risposta data 29.04.2013 - 13:29
fonte

Leggi altre domande sui tag