2010-09-28 11 views
8

sto lavorando su un progetto cross-platform C++ con 8 altre persone che utilizza le seguenti librerie:Impostazione di un progetto cross-platform C++ in Eclipse con le librerie multipiattaforma

  • OpenCV Biblioteca
  • Boost C++ Biblioteca

Il progetto è in questione, destinate ad essere cross-platform in modo che tutti gli utenti hanno accettato di non utilizzare il codice specifico della piattaforma, e, per mantenere le cose il più semplice possibile, tutti gli utenti saranno con Eclipse come loro IDE. Tuttavia, alcuni useranno Eclipse per Windows mentre altri useranno Eclipse per Linux.

Poiché il progetto sarà ospitato su SVN, vorremmo evitare conflitti con diversi file di configurazione (come file make, file di progetto eclipse ecc.) Che sono condivisi. Vorremmo anche condividere il maggior numero possibile di file di configurazione tramite SVN, per mantenere la configurazione il più semplice possibile.

Supponiamo che tutti gli utenti abbiano correttamente configurato le variabili di sistema e installato gli strumenti di compilazione richiesti (come make, cmake ecc.) E abbiano configurato correttamente le loro impostazioni di Eclipse configurate (ma non le impostazioni specifiche del progetto).

Come configurare il progetto una volta e quale dei file di configurazione condividere sul repository, in modo che sia gli utenti Windows che Linux possano compilarlo senza modificare i file di configurazione recuperati dal repository SVN?

(Non sto cercando la soluzione completa che funzioni specificamente per quelle 2 librerie che ho citato, quindi gradirei una spiegazione dettagliata passo-passo che mi consenta di aggiungere facilmente un'altra libreria.)

+0

Ho cercato di utilizzare Eclipse in questo modo e ho riscontrato alcuni problemi.Per cominciare, proverei a creare configurazioni DEBUG/RELEASE completamente separate per piattaforma e, per quanto possibile, attenersi alla stessa identica versione di Eclipse e CDT! Finisci per dover usare SVN solo per condividere il codice e mantenere le configurazioni di Eclipse create localmente. Sono interessato a sapere come vai avanti! –

+1

Attualmente sto studiando la creazione di un progetto cross-platform open-cv con Eclipse e SVN. Sarei interessato a sapere come sei arrivato? Sarebbe bello se tu fossi ora in grado di rispondere alla tua stessa domanda in base alle tue esperienze. – volting

risposta

0

discussione generale:

sarà necessario installare Cygwin o qualcosa di simile ad esso per rendere GNU Autotools toolchain disposizione di Eclipse su Windows: How to deal with Eclipse CDT+Cygwin?

Una volta che il toolchain, Eclipse, con connettori CDT e SVN sono pronti per il tuo dev macchine per l'elopment, segui i seguenti passaggi.

  1. Aprire Eclipse e passare alla CDT: Clicca Finestra-> Apri Perspective-> Altro ... e selezionare C/C++
  2. Selezionare: Eclipse-> File-> Nuovo-> C++ Progetto
  3. Progetto nome: spettatore
  4. Seleziona: progetto del tipo> GNU Autotools-> Ciao a C++ Autotools progetto
  5. Click: Avanti
  6. Click: Fine
  7. tasto destro del mouse in Esplora progetti: viewer-> progetto riconfigurare
  8. Fare clic su: Console-> Visualizza il sottomenu della console selezionata -> # CDT Global Build Console. Se l'output "autoreconf -i" è nominale, passare al punto 9. Se Console riporta: sh: autoreconf: comando non trovato, quindi aggiungere il percorso al comando autoreconf all'ambiente di creazione progetto:
    1. Fare clic con il tasto destro del mouse su Project Explorer: visualizzatore-> Proprietà-> C/C++ Build-> Ambiente-> Aggiungi ...
    2. Nome: PERCORSO
    3. Valore: path_to_autoreconf: $ {env_var: PATH}
    4. Click: OK
    5. Click: Applicare
    6. Torna al punto 8.
  9. doppio clic: Progetto Explorer-> viewer-> SRC-> viewer.cpp
  10. Aggiungete un po 'di codice:

    includono <OpenCV/cv.h>

    includono <OpenCV/highgui.h>

    includono <cassert>

    int main (int argc, char * argv []) {

    assert (argc > 1);

    CvMat * img = cvLoadImageM (argv 1);

    cvNamedWindow (" Immagine ", CV_WINDOW_AUTOSIZE);

    cvShowImage (" Immagine ", IMG);

    cvWaitKey (0);

    ritorno 0;

    }

  11. doppio clic: Progetto Explorer-> viewer-> configure.ac e inserire il seguente codice sotto AC_PROG_CXX.

    AC_CHECK_LIB ([opencv_core], [cvSetZero], [], [])

    AC_CHECK_LIB ([opencv_highgui], [cvShowImage], [], [])

    AC_CHECK_LIB ([boost_regex -MT], [regexecA], [BOOST_LIB_SUFFIX = "- mt"], [BOOST_LIB_SUFFIX = ""])

    AC_SUBST (BOOST_LIB_SUFFIX)

  12. doppio clic: Progetto Explorer-> viewer-> src -> Makefile.am ed entra il seguente codice >

    bin_PROGRAMS = spettatori

    viewer_SOURCES = openCvFocusIssue.cpp

    viewer_LDFLAGS = -lboost_regex @ @ BOOST_LIB_SUFFIX -lopencv_core -lopencv_highgui

  13. Ripetere il passaggio 8, autoreconf (progetto Riconfigurazione)
  14. Click: Progetto Explorer-> spettatore
  15. progetto Costruire cliccando il martello nella barra degli strumenti. Se non vedi il martello, Finestra-> Apri prospettiva-> Altro ... e seleziona C/C++. Se C/C++ non viene visualizzato, installare il CDT.
  16. Fare clic: Project Explorer-> viewer e quindi Esegui-> Esegui, quindi nella finestra Esegui come-> Applicazione C/C++ locale, quindi nella finestra Avvia selezione configurazione debug-> gdb/mi e premere invio. Dovresti vedere Hello World.
  17. Esci da Eclipse e vai alla directory del progetto del visualizzatore.
  18. Nella riga di comando, tema make dist
  19. Assicurarsi che hai un visualizzatore-1.0.tar.gz o un file dal nome simile, e quindi rimuoverlo: rm viewer-1.0.tar.gz
  20. Sulla riga di comando , problema make clean
  21. Nello stesso luogo, il problema diventa distico.
  22. Passare alla directory dello spazio di lavoro che contiene il progetto del visualizzatore.
  23. Sposta l'intera directory del visualizzatore nella directory che contiene il checkout svn in cui vuoi inserire il progetto del visualizzatore.
  24. Cambia directory in cui hai appena spostato il visualizzatore.
  25. svn add spettatore & & svn ci -m "Aggiunto progetto Eclipse-Autotool"
  26. Aprire Eclipse e fare in modo che si dispone di un connettore di SVN installato.
  27. Rimuovere il progetto "visualizzatore" dalla vista Esplora progetti.
  28. Aprire eclissi e aggiungere questo controllo del repository SVN alla prospettiva Team.
  29. Importare il progetto di visualizzazione dal controllo del repository SVN.
  30. Torna alla prospettiva C/C++ e divertiti.
0

due suggerimenti:

  • Uso cmake: io amo questo strumento. C'è un po 'di una curva di apprendimento ma se hai capito bene tutto il progetto includerà i file cmake e quando una persona lo controlla per la prima volta eseguono cmake per generare i loro makefile (o file di progetto VC++, ecc.) potrebbero essere necessarie tutte le diverse regole per linux o windows one .

o

  • check in una configurazione di base per il progetto, quindi aggiungere i file di configurazione per il git/svn ignorare in modo che nessuno mai li controlla di nuovo, poi quando si verifica per la prima volta devi far funzionare la tua configurazione, ma dopo non sarà sovrascritta.
Problemi correlati