2009-12-31 8 views
0

Lorsque j'ai recompilé un ancien projet Obj-C (une application Cocoa), l'éditeur de liens n'a pas pu trouver certains modules de bibliothèque communs, y compris sin() et sysctl(). Ce projet avait fonctionné dans la version précédente de Xcode. J'utilise maintenant Xcode 3.1.2 sous OSX 10.5. Le message d'erreur était:bibliothèque perdue lors de la recompilation du projet Obj-C

Line Location Tool:0: collect2: ld returned 1 exit status 
Line Location Tool:0: symbol(s) not found 
Line Location Tool:0: _AmIBeingDebugged in MeterMileage.o 
Line Location Tool:0: "_sysctl", referenced from: 
Line Location Tool:0: -[AnimatedStar drawRect:] in AnimatedStar.o 
Line Location Tool:0: "_sin", referenced from: 
... 

Ma version actuelle de XCode lien avec la bibliothèque correcte pour un nouveau projet en utilisant le péché(), etc. Comment puis-je corriger le projet qui a commencé dans un Xcode plus tôt à utiliser le bon bibliothèque? J'ai vu le billet sur les liens dans FFTW, mais le péché() n'est pas si inhabituel, n'est-ce pas? Je suppose que je pourrais créer un nouveau projet, et y copier mon code, etc, mais cela semble un peu maladroit. Y a-t-il un meilleur moyen? Il y aura probablement plus de projets à mettre à jour.

Merci, Gary

+0

Avez-vous nettoyé la cible et créé le répertoire des résultats? –

+0

Oui - a fait "Nettoyer toutes les cibles", supprimé "Build" dossier – gary

Répondre

0

Il est probable que le projet tente de plus indiquer explicitement la copie d'une ancienne de la bibliothèque standard C ou de l'exécution qui n'existe pas sur 10,5. S'il vous plaît poster le lien invocation ligne, pas seulement les résultats d'erreur; cela devrait nous donner quelques indices.

+0

Eh bien, j'ai dû faire un peu d'apprentissage ... Le plus proche que je pouvais trouver une ligne d'invocation de liens était la ligne BUILD TRANSCRIPT pour GCC. Il avait un drapeau "-nostdlib". Ah-hah! C'était le problème. Existe-t-il un moyen de voir l'invocation de l'éditeur de liens? Cela pourrait simplifier les choses à l'avenir en montrant seulement les indicateurs ld pertinents (en laissant tomber les trucs gcc). Merci pour votre aide. – gary

Questions connexes