CONNEXION
  • RetourJeux
    • Sorties
    • Hit Parade
    • Les + populaires
    • Les + attendus
    • Soluces
    • Tous les Jeux
    • Gaming
  • RetourActu Gaming
    • News
    • Astuces
    • Tests
    • Previews
    • Toute l'actu gaming
  • RetourBons plans
    • Bons plans
    • Bons plans Smartphone
    • Bons plans Hardware
    • Bons plans Image et Son
    • Bons plans Amazon
    • Bons plans Cdiscount
    • Bons plans Decathlon
    • Bons plans Fnac
    • Tous les Bons plans
  • RetourJVTech
    • Actus High-Tech
    • Intelligence Artificielle
    • Smartphones
    • Mobilité urbaine
    • Hardware
    • Image et son
    • Tutoriels
    • Tests produits High-Tech
    • Guides d'achat High-Tech
    • JVTech
  • RetourCulture
    • Actus Culture
    • Culture
  • RetourVidéos
    • A la une
    • Gaming Live
    • Vidéos Tests
    • Vidéos Previews
    • Gameplay
    • Trailers
    • Chroniques
    • Replay Web TV
    • Toutes les vidéos
  • RetourForums
    • Hardware PC
    • PS5
    • Switch 2
    • Xbox Series
    • Switch
    • Pokemon pocket
    • FC 25 Ultimate Team
    • League of Legends
    • Tous les Forums
  • PC
  • PS5
  • Xbox Series
  • Switch 2
  • PS4
  • One
  • Switch
  • iOS
  • Android
  • MMO
  • RPG
  • FPS
En ce moment Genshin Impact Valhalla Breath of the wild Animal Crossing GTA 5 Red dead 2
Liste des sujets

[C++] Programmation multiplateforme.

Tuxmax
Tuxmax
Niveau 5
12 novembre 2013 à 20:24:34

Salut, j'ai deux question:

1. Je compte commencer à programmer avec Qt et ultérieurement avec SFML. Mais comme il est important pour moi de faire du code multiplateforme, je me demandais si le choix du compilateur (et de sa version) avait un impact sur le résultat final ? Par exemple si je compile avec minGW (GCC 3.4.5) sur windows et avec GCC 4.8.2 sur Linux.

2. Dans le cadre d'un travail pour mes cours, j'ai conçu un petit programme en console avec visual studio 2010. L'exécutable (version release) avait une taille de 13.5ko. J'ai repris le même code et je l'ai compilé sur codeblock (avec GCC) et l'exécutable (version release) avait une taille de 474ko.
J'aimerais savoir pourquoi la taille des exécutable est si différente ?

Merci pour vos réponses ! :)

vive_cod4
vive_cod4
Niveau 9
12 novembre 2013 à 20:38:38

Pour MinGW je viens de voir dans les sources que la dernière version est 4.8.1-4 donc si tu veux avoir la compatibilité entre ton GCC 4.8.2 linux et celui de windows, faudra faire attention à ne pas utiliser des choses n'existant pas encore sur windows.

Pour le compilateur, si tu choisis avec le compilo MSVC, c'est clair que tu auras un certain problème pour porter tes applications hors de windows.

Pour la deux, cela dépend des flags que tu définis. Par défaut, sur VS plein de flags sont déjà prédéfini et sur gcc, si tu fais un simple gcc -o out out.c tu n'auras pas préciser des flags pouvant "compresser le programme", comme les O1-2-3 par exemple

godrik
godrik
Niveau 30
12 novembre 2013 à 21:06:50

Il y a des incompatibilite de source d'une version de GCC a une autre. De facon generale, programmer de facon portable d'un compilateur a l'autre n'est pas toujours evident. Le plus simple est de tester multiple compilateur sur multiple plateforme.
Ce qui est a mon avis le plus important quand on ecrit du code portable est de se rappeller que des choses pourant simple ne sont pas forcement identique d'une plateforme a l'autre. Par exemple la taille des types primaire du langage peut varier, en particulier la taille des pointeurs.
Apres il faut faire attention a utiliser des libs portable, mais QT est portable donc tu devrais etre tranquil.

Tuxmax
Tuxmax
Niveau 5
12 novembre 2013 à 21:25:46

Merci pour les réponses, ça répond bien à mes questions :)

Pseudo supprimé
Pseudo supprimé 12 novembre 2013 à 23:18:13

@Tuxmax
1. Tu t'en fiche avec QT tu compiles chaque environnements avec ce qui est livré avec et basta ;)
Par contre il faut absolument utiliser les types/classes de QT pour "garantir" la portabilité, quasiment tout est redéfinit meme les types de base. De ce que je me souvient c'est d'ailleurs bien mieux foutu donc autant ne pas se priver.

2. Tu n'auras jamais le meme binaire avec des compilo différents. Même deux versions différentes du même compilateurs ne donnera pas le même binaire. Les options activées ou non jouent aussi. En généralisant: le compilateur est un logiciel, deux logiciels développés par deux sociétés différentes ne fonctionnera jamais exactement de la même manière.

@vive_cod4
-O1, O2, O3 ne compresse pas le code, ca active juste un certains niveau d'optimisations. Le binaire peut même d'ailleurs être plus gros dans certains cas (déroulage de boucles en mode optimisation speed).

Sous forums
  • Aide à l'achat Mac
  • Création de Jeux
  • Linux
  • Programmation
  • Création de sites web
  • Internet
  • Steam Deck
  • Macintosh
  • Hardware
La vidéo du moment