J'essaie de comprendre pourquoi lorsque je convertis mon fichier main.m en un fichier main.mm, il ne sera plus lié correctement.objectif de liaison C++
J'ai réduit le problème à l'exemple de code suivant:
#import <Foundation/Foundation.h>
#import <AppKit/AppKit.h>
int main(int argc, const char ** argv) {
return NSApplicationMain(argc, argv);
}
J'utilise GNUstep et linux. J'entre les commandes suivantes et tout fonctionne comme prévu:
g ++ -c -g main.m -I/usr/GNUstep/Local/Library/En-têtes -I/usr/GNUstep/System/Library/En-têtes
g ++ -g -o test main.o -L /usr/ GNUstep/Local/Bibliothèque/Bibliothèques -L /usr/ GNUstep /Système/Bibliothèque/Bibliothèques -lgnustep-base -lgnustep-gui
Maintenant, si je renommer main.m à main.mm et utilisez ces deux commandes (même main sauf main.mm maintenant):
g ++ -g -c main.mm -I/usr/GNUstep/Local/Bibliothèque/En-têtes -I/usr/GNUstep/System/Library/En-têtes
g ++ -g -o Test main.o -L/usr/GNUstep/Local/Library/Bibliothèques -L/usr/GNUstep/System/Library/Bibliothèques base -lgnustep de -lgnustep-IUG
Je reçois l'erreur suivante: main.mm:7: référence non définie à `NSApplicationMain (int, char const **) '
Quelqu'un peut-il trouver ce que je fais mal? Je ne vois pas pourquoi il ne parvient pas à établir un lien. J'essaye d'ajouter quelques classes de C++ à un programme d'objectif c et ceci m'empêche de continuer.
Merci pour toute aide que vous pouvez fournir.