Erste Schritte mit einem plattformübergreifenden C ++ - Projekt

7

Ich starte ein C ++ - Projekt, das ich genauso gut in Eclipse (Linux) und vs2010 aus dem gleichen Repository kompilieren möchte und einige Hilfestellungen geben könnte. Während viele der Aspekte einzeln googelt werden können, habe ich auf Ratschläge gehofft, wie man das Problem im Ganzen angehen kann.

Zum Beispiel, wo man die Bibliotheksquellen behält, wie man die make-Datei strukturiert und wie man googletest integriert (das Finden eines Anfänger-Tutorials auf googeltest ist schwierig). Ein Link zu einem Tutorial, das diese Aspekte anspricht, wäre großartig, oder eine Reihe von Tutorials, die zusammen helfen könnten.

Mein Hintergrund ist in C # und ich versuche, die "Sauberkeit" und Organisation meiner VS-Projekte beizubehalten.

    
ccook 24.09.2010, 15:47
quelle

3 Antworten

13

Ich habe plattformübergreifende Projekte durchgeführt, die die "nativen" Build-Systeme auf beiden Plattformen verwenden (vsproj-Dateien unter Windows und makefiles unter Linux), aber es war definitiv ein Problem, beide Projektdateien zu verwalten. Also, ja, ich stimme den anderen Vorschlägen zu, dass Sie versuchen sollten, mit einem soliden plattformübergreifenden Build-Dienstprogramm zu beginnen. CMake oder möglicherweise Boost-Build scheint wie anständige Optionen - wahrscheinlich gibt es viele andere.

Wenn es um Bibliotheken von Drittanbietern geht, sollten Sie sich an Sachen halten, die plattformübergreifend getestet werden. Boost ist die beste universelle Bibliothek für C ++ (ja, Sie sehen es hier in fast jedem C ++ Thread erwähnt ... aber Das ist, weil es wirklich ist eine schöne Sammlung nützlicher Sachen). Wie für XML, HTTP, Image-Bibliotheken, UI - es gibt alle guten plattformübergreifenden Optionen - schauen Sie sich einfach um oder fragen Sie hier, ob Sie spezielle Anforderungen haben. Was auch immer Sie tun, verwenden Sie nicht eine Bibliothek von CodeProject oder eine andere MS-orientierte Website, die nur mit Visual Studio 6 getestet wurde - das wird nur zu Elend führen. Die meisten GNU-Bibliotheken bauen heutzutage auf Windows auf, also solltest du mit diesem Zeug einigermaßen sicher sein.

Obwohl es verlockend sein wird, versuchen Sie, die Plattform #ifdefs in Ihrem Code zu minimieren - ziehen Sie es stattdessen vor, plattformspezifische Inhalte in einer Bibliothek möglichst zu abstrahieren.

Viel Glück!

    
Mike Ellery 24.09.2010, 16:15
quelle
5

Sie sollten sich cmake ansehen.

    
Hitesh 24.09.2010 15:55
quelle
4

Eine Sache, die ich empfehlen könnte, wenn Sie stark plattformübergreifend vorgehen und alles so "sauber" wie möglich aussehen soll: Zentralisieren Sie Ihr Build-System mit einem modernen plattformübergreifenden Build-Tool wie Scons. Es ist in Python geschrieben, es ist sehr präzise und kraftvoll und es funktioniert überall.

Wenn Sie Fan von Eclipse sind, installieren Sie einfach Eclipse unter Windows und GNU / Linux. Wie ich oben erwähnt habe, ist es plattformübergreifend, und Sie können es für Compiler auf allen möglichen verschiedenen Systemen arbeiten lassen.

    
Reinderien 24.09.2010 15:53
quelle

Tags und Links