Salut,
J'ai un projet C++ graphique à réaliser avec la librairie graphique Allegro.
L'installation sous MacOS X s'est très bien passée. Il existe dans XCode un "template" de projet "Allegro Application" qui contient les framework Allegro, ainsi qu'un main.c.
Projet XCode
Le code est pré-rempli par un "Hello World" en mode graphique qui marche très bien.
Or, si je renomme main.c en main.cpp, la compilation me provoque des warnings assez désagréables dont voici les détails:
Il se trouve que Je dois réaliser ce projet en C++ et je désire créer un un code portable. Comment dois-je m'y prendre ? Quelles seraient les étapes pour partir d'un projet "vide", les framework à installer ? Sous Windows, avec Dev C++ c'est beaucoup plus simple, il faut juste inclure le fichier "liballeg.a" à la compilation. N'est-il pas possible de procéder ainsi à partir d'un modèle d'application "Command Line C++ tool" ? Il n'est pas possible du tout de programmer en C++ dans un projet qui contient 1 seul appel à Cocoa, dont le code n'est même pas inclus (en gros l'instanciation d'un NSWindow pour afficher le contenu de l'application).
J'ai cherché sur Google et dans la doc mais je ne suis pas beaucoup plus avancé...
PS: J'insiste sur le C++ une orientation objet est exigée dans le projet, mais sans l'utilisation d'un modèle objet propre à un OS.
Aurélien
J'ai un projet C++ graphique à réaliser avec la librairie graphique Allegro.
L'installation sous MacOS X s'est très bien passée. Il existe dans XCode un "template" de projet "Allegro Application" qui contient les framework Allegro, ainsi qu'un main.c.
Projet XCode
Sources: main.c
Frameworks: Cocoa.framework, Allegro.framework
Products: Projet.app
Le code est pré-rempli par un "Hello World" en mode graphique qui marche très bien.
Or, si je renomme main.c en main.cpp, la compilation me provoque des warnings assez désagréables dont voici les détails:
/usr/bin/ld: warning prebinding disabled because (__PAGEZERO segment (address = 0x0 size = 0x1000) of /Users/billou/demoalleg/build/Development/demoalleg.app/Contents/MacOS/demoalleg overlaps with __TEXT segment (address = 0x0 size = 0xc000) of /usr/lib/libgcc_s.1.dylib
/usr/bin/ld: warning prebinding disabled because (__TEXT segment (address = 0x1000 size = 0xa000) of /Users/billou/demoalleg/build/Development/demoalleg.app/Contents/MacOS/demoalleg overlaps with __TEXT segment (address = 0x0 size = 0xc000) of /usr/lib/libgcc_s.1.dylib
/usr/bin/ld: warning prebinding disabled because (__DATA segment (address = 0xb000 size = 0x1000) of /Users/billou/demoalleg/build/Development/demoalleg.app/Contents/MacOS/demoalleg overlaps with __TEXT segment (address = 0x0 size = 0xc000) of /usr/lib/libgcc_s.1.dylib
/usr/bin/ld: warning prebinding not disabled even though (__OBJC segment (address = 0xc000 size = 0x1000) of /Users/billou/demoalleg/build/Development/demoalleg.app/Contents/MacOS/demoalleg overlaps with __LINKEDIT segment (address = 0xc000 size = 0x2460) of /usr/lib/libgcc_s.1.dylib on the assumption that the stripped output will not overlap
/usr/bin/ld: warning prebinding not disabled even though (__LINKEDIT segment (address = 0xd000 size = 0x4000) of /Users/billou/demoalleg/build/Development/demoalleg.app/Contents/MacOS/demoalleg overlaps with __LINKEDIT segment (address = 0xc000 size = 0x2460) of /usr/lib/libgcc_s.1.dylib on the assumption that the stripped output will not overlap
/usr/bin/ld: warning prebinding disabled because (__TEXT segment (address = 0x1000 size = 0xa000) of /Users/billou/demoalleg/build/Development/demoalleg.app/Contents/MacOS/demoalleg overlaps with __TEXT segment (address = 0x0 size = 0xc000) of /usr/lib/libgcc_s.1.dylib
/usr/bin/ld: warning prebinding disabled because (__DATA segment (address = 0xb000 size = 0x1000) of /Users/billou/demoalleg/build/Development/demoalleg.app/Contents/MacOS/demoalleg overlaps with __TEXT segment (address = 0x0 size = 0xc000) of /usr/lib/libgcc_s.1.dylib
/usr/bin/ld: warning prebinding not disabled even though (__OBJC segment (address = 0xc000 size = 0x1000) of /Users/billou/demoalleg/build/Development/demoalleg.app/Contents/MacOS/demoalleg overlaps with __LINKEDIT segment (address = 0xc000 size = 0x2460) of /usr/lib/libgcc_s.1.dylib on the assumption that the stripped output will not overlap
/usr/bin/ld: warning prebinding not disabled even though (__LINKEDIT segment (address = 0xd000 size = 0x4000) of /Users/billou/demoalleg/build/Development/demoalleg.app/Contents/MacOS/demoalleg overlaps with __LINKEDIT segment (address = 0xc000 size = 0x2460) of /usr/lib/libgcc_s.1.dylib on the assumption that the stripped output will not overlap
Il se trouve que Je dois réaliser ce projet en C++ et je désire créer un un code portable. Comment dois-je m'y prendre ? Quelles seraient les étapes pour partir d'un projet "vide", les framework à installer ? Sous Windows, avec Dev C++ c'est beaucoup plus simple, il faut juste inclure le fichier "liballeg.a" à la compilation. N'est-il pas possible de procéder ainsi à partir d'un modèle d'application "Command Line C++ tool" ? Il n'est pas possible du tout de programmer en C++ dans un projet qui contient 1 seul appel à Cocoa, dont le code n'est même pas inclus (en gros l'instanciation d'un NSWindow pour afficher le contenu de l'application).
J'ai cherché sur Google et dans la doc mais je ne suis pas beaucoup plus avancé...
PS: J'insiste sur le C++ une orientation objet est exigée dans le projet, mais sans l'utilisation d'un modèle objet propre à un OS.
Aurélien