Non sono soddisfatto del nostro ambiente di sviluppo per le nostre apparecchiature basate su Linux (Ubuntu 10.04). È un software incorporato che stiamo sviluppando. Quello che vorrei è avere il mix ottimale di questi desideri:
- Utilizza strumenti e librerie comprovati
- Essere in grado di sviluppare sia su Linux che su Windows
- Idealmente: usa gli stessi strumenti su entrambe le piattaforme
- Avere cicli di sviluppo rapidi, specialmente su Windows
Nota che pagare per cose buone è sicuramente un'opzione. Nota anche che C ++ e Linux sono gli unici due requisiti difficili, tutto il resto è aperto al dibattito.
Al momento utilizziamo librerie Boost e STL per ottenere la massima indipendenza dalla piattaforma. CodeBlocks è il nostro IDE multipiattaforma e usiamo la catena di strumenti gcc (compilatore, linker, debugger, non make). Tutti sono eccellenti progetti open source ma hanno i loro limiti.
I più grandi problemi con l'ambiente attuale:
- Rispetto a MS Visual C ++, sento che gcc è molto lento. Viene dedicato molto tempo alla compilazione e in particolare al collegamento. Il supporto di intestazione precompilato di gcc non ti dà quasi lo stesso vantaggio in termini di prestazioni di VC e con l'aumento di cui hai davvero bisogno. Inoltre, il collegamento statico di alcune librerie di boost richiede per sempre. (Utilizzerebbe il collegamento dinamico cambiare molto?)
- CodeBlocks non ha supporto per ciò che in VC sono file di proprietà. Ciò rende difficile far rispettare le opzioni di generazione per tutti i progetti nello spazio di lavoro.
- In relazione alla velocità di costruzione: CodeBlocks non ha il supporto per "compilare solo questo progetto" come VC. Quando si modifica un singolo file sorgente, CodeBlocks impiega troppo tempo a verificare la necessità di compilare i file che so non sono stati modificati.
Alcuni dei miei pensieri fino ad ora:
- Il problema più grande è avere un compilatore e un linker veloce e affidabile su tutte le piattaforme su cui sviluppiamo. Se questo è risolto, cosa ne pensi di fare lo sviluppo su più piattaforme? I compilatori Intel C ++ sono un'opzione (non abbiamo davvero bisogno dell'ottimizzazione delle prestazioni di questi compilatori)? Dovremmo considerare la compilazione incrociata?
- Dovremmo usare una build basata su make? Sembra una soluzione quando si dimostra difficile utilizzare lo stesso tool IDE / build su Windows e Linux. Trovo difficile renderlo così che mi trattiene.
- Esiste un singolo prodotto di durata equivalente come Visual Studio (IDE e catena di strumenti) disponibile per Windows e Linux? O del resto, solo per Linux?
- Quanto più semplice sarebbe la vita se decidessimo di sviluppare solo su Linux? In questo momento tutti usiamo Windows perché è supportato dall'IT, il nostro software non di sviluppo è tutto Windows e abbiamo una competenza limitata di Linux nella nostra azienda.
I tuoi pensieri per favore.