2010-03-03 6 views
3

Je voulais créer un moteur de jeu 2D multiplateforme, et je voudrais savoir comment créer un projet multiplateforme avec Makefile, donc je peux le compiler sur les plateformes que je choisis avec une règle personnalisée pour toute plate-forme. Je travaille sur l'environnement Windows avec Visual C++ Express 2008, donc ce serait bien si je peux utiliser Visual C++ Express comme IDE.Création d'une bibliothèque C++ multi-plateforme

Mes plates-formes sont ENCORE la Nintendo DS et le PC.

S'il vous plaît dites-moi ce qu'il faut faire.

Merci d'avance, Tamir.

Répondre

5

N'utilisez pas make, utilisez un outil multiplateforme comme cmake, il s'occupera de la génération spécifique à la plate-forme pour vous. Comme sur Windows, il générera les fichiers du projet pour utiliser Visual Studio; sous Linux, il va générer les fichiers GNU make pour vous. Vous pouvez le configurer pour trouver les bonnes versions des bonnes bibliothèques et tout. Cmake est génial. CMake n'est pas un compilateur (ni make), c'est un système d'automatisation de construction multiplateforme. Il vous permet de développer sur n'importe quelle plate-forme et il est par défaut supposer que vous développez pour la plate-forme que vous utilisez. Vous pouvez spécifier des paramètres si vous voulez faire d'autres choses. Cependant, la plupart des choses "multiplateformes" sont toujours laissées à votre code. Je recommande également une bibliothèque qui a été testée sur de nombreuses plates-formes, comme Boost. L'utilisation de Boost peut aider à garder tout votre code en bon état sur n'importe quel système et il n'y a pratiquement pas de frais généraux pour l'utiliser.

+0

Merci pour la réponse rapide, je vais essayer CMake et déterminer votre réponse comme le meilleur si cela fonctionne. –

+0

Pour en avoir l'idée, CMake s'occupera de la compilation, mais il ne supporte que certaines plateformes spécifiques? Parce que je prévois également de compiler pour la Nintendo DS (qui utilise un processeur arm7/arm9). –

+0

Je suppose que j'aurais dû être plus clair ... Je suis en train d'éditer ma réponse. –

0

Je sais que vous pouvez utiliser Makefiles pour faire #defines, ce qui est une astuce commune pour l'échange de blocs de code. Il existe également des moyens de détecter la plate-forme, bien que ce soit principalement pour les différences Mac/Windows/Linux.

Aussi, Travis a probablement raison; Avoir vos makefiles eux-mêmes être multiplate-forme est vraiment excellent, car il est plus facile de configurer les serveurs et les choses.