2010-07-19 2 views
0

J'ai un projet Objective-C/Cocoa qui incorpore une bibliothèque statique. Cette bibliothèque statique contient des fichiers objets contenant C++.Xcode: paramètre pour activer C++ même si aucune source C++ n'est dans le projet?

J'ai trouvé que si le projet dans lequel j'utilise la bibliothèque ne contient aucun autre C++, le lien échoue (impossible de lier new/delete/etc). Mais l'ajout d'un seul fichier .cpp (vide) au projet entraîne la réussite du lien.

En pratique, ce qui se passe est que la construction appellera g ++ au lieu de gcc quand il y a un cpp, qui réussit. Aucune autre différence dans la construction n'est évidente pour moi.

Existe-t-il un commutateur explicite que je peux utiliser pour lier dans cette bibliothèque sans utiliser le fichier cpp factice dans le projet?

(Ceci est la plupart du temps une curiosité question-- ce n'est pas la fin du monde à mettre dans un fichier vide. :))

Merci.

Répondre

3

essayer de lier libstdC++

gcc main.c -lstdc++ 

ou dans Xcode: Projet-> Modifier les paramètres du projet

à la section de configuration "Autres drapeaux Linker", ajoutez -lstdc++.

+0

Bingo, merci. Édité votre réponse pour montrer aux autres comment accomplir ceci dans Xcode. –