Donc, je travaille depuis quelque temps sur la connexion de hachage d'une application triviale, comprenant C++ et Objective-C, pour prouver quelques concepts et essayer d'apprendre quelque chose.Mélanger C++ et Objective-C (problème d'Automake suspecté)
est ici où je suis maintenant, ma commande (en cours d'exécution, et réexécution des changements) est
$ autoreconf -vis && make clean && ./configure && make && ./src/greetings
Notez que j'espère que ça va fonctionner quand je suis fait , voici une brève liste des fichiers:
$ find . | ack '\.(?:cpp|mm|h)$' ./src/darwin/greet.cpp ./src/darwin/greeting.h ./src/darwin/greeting.mm ./src/greet.h ./src/main.cpp ./src/mingw32/greet.cpp ./src/mingw32/greet.h
Les fichiers en entier, peuvent être trouvés dans ce Gist at Github.
Plutôt que d'être un problème spécifique avec le mélange des langues (je ne fais même pas jusque-là) - je semble tomber par hasard au compilateur ne reconnaît pas que ce Objective-C
(ou ObjecC++
) - pour cette raison, mon autoconf les fichiers sont en this gist.
Avec la sortie d'erreur complète here, also in a Gist.
Voici un exemple:
In file included from /usr/include/c++/4.2.1/iosfwd:48, from /usr/include/c++/4.2.1/ios:43, from /usr/include/c++/4.2.1/ostream:45, from /usr/include/c++/4.2.1/iostream:45, from darwin/greet.cpp:10: /usr/include/c++/4.2.1/bits/stringfwd.h:48: error: template with C linkage /usr/include/c++/4.2.1/bits/stringfwd.h:51: error: template with C linkage /usr/include/c++/4.2.1/bits/stringfwd.h:54: error: template with C linkage /usr/include/c++/4.2.1/bits/stringfwd.h:58: error: template specialization with C linkage /usr/include/c++/4.2.1/bits/stringfwd.h:63: error: template specialization with C linkage In file included from /usr/include/c++/4.2.1/iosfwd:49, from /usr/include/c++/4.2.1/ios:43, from /usr/include/c++/4.2.1/ostream:45, from /usr/include/c++/4.2.1/iostream:45, from darwin/greet.cpp:10:
Avez-vous essayé de renommer les fichiers '.cpp' avec l'extension' .mm'? –
Oui, si je fais cela alors l'automake ne trouve aucun fichier d'entrée, cependant quand je commente la ligne 'greetings_CFLAGS = -framework -Xlinker Foundation' dans'./Src/Makefile.am' alors les erreurs changent toutes en quelque chose comme ' /usr/include/c++/4.2.1/bits/istream.tcc:406: error: template avec C linkage' –
Pouvez-vous ajouter 'Makefile' ou' Makefile.in' à votre liste? Je me demande si une règle de suffixe pour '.mm -> $ (OBJEXT)' est manquante et c'est pourquoi il n'y a pas de fichier d'entrée. –