2014-09-01 1 views
0

Comme demandé here, je reçois une erreur après avoir ajouté Q_OBJECT dans ma classe QServer:Encore une fois Q_OBJECT linker erreur

class QServer : public QThread 
{ 
    Q_OBJECT 

... 

Les erreurs que je reçois sont les suivantes:

Fehler: symbole (s) introuvable pour l'architecture x86_64

Fehler: la commande de l'éditeur de liens a échoué avec le code de sortie 1 (utilisez -v pour voir l'invocation)

L'en-tête est dans mon fichier .pro - ce qui ne peut pas être la raison. Je cours Qt5 sur mon Mac - exécutant OS X 10.9 avec Xcode installé.

Peut-être que quelqu'un a une idée ...

+0

Ce ne sont pas toutes les erreurs - celles-ci doivent être précédées de messages d'erreur qui listent les symboles réels non trouvés. – Angew

+0

J'ai remarqué que qmake ne voit parfois pas qu'il doit exécuter 'moc' contre une classe à laquelle vous venez d'ajouter' Q_OBJECT'. Le 'make' voit la modification du fichier et recompile le fichier, mais' qmake' ne le voit pas et il ne lance pas 'moc' contre lui. Essayez de reconstruire le projet entier. Cela devrait aider. – Googie

+0

duplication possible de ["Symbol (s) non trouvé pour l'architecture x86 \ _64" sur le projet QtCreator] (http://stackoverflow.com/questions/18973042/symbols-not-found-for-architecture-x86-64-on -qtcreator-project) – TheDarkKnight

Répondre

1

Je pense que vous devez exécuter qmake à nouveau sur votre projet et compiler à nouveau (Qt ne peut pas savoir que vous venez d'ajouter Q_OBJECT à une classe, il ne sait pas que il doit exécuter le compilateur moc dessus) ...

+0

Après avoir recommencé qmake , l'erreur disparaît, mais après la construction après cela, l'erreur retourne. – TacoVox