Qt sagt mir, dass meine SCHLITZ doesnt existieren, aber mit einem Make sauber, macht es mehr beschweren tut

StackOverflow https://stackoverflow.com/questions/1870389

  •  18-09-2019
  •  | 
  •  

Frage

, wenn ich eine neue Kopie von unserem SVN herunterladen, stellen Sie dann mein Programm ausführen, Qt mich erzählt, dass einer meiner KERBT nicht funktioniert, aber mit einem Handy-Dandy macht sauber dann machen, so scheint es, das Problem zu lösen. i weiterhin Änderungen im Code auf meinem PC machen und diese Botschaft zeigt nie wieder.

C ++ Qt 4.6 gcc

hat jemand hat dieses Problem? und Ideen?

Dank

War es hilfreich?

Lösung

Qt erstellt eine ganze Reihe von Metadaten über Ihre Q_OBJECT Klassen, wenn Sie zu bauen. Das Metadaten wird in ‚moc‘ Dateien gespeichert, von denen einer mit dem C ++ Code inkonsistent geworden sind. Es ist in der Regel eine schlechte Idee in Ihrem Versionskontrollsystem Zwischen Build Stufen zu speichern. Ich würde vorschlagen, make clean läuft, dann an Ihrem VCS suchen, um herauszufinden, welche Dateien gelöscht wurde, dann das Ergebnis begehen.

svn:

make clean
svn st     # you should see some files deleted
svn rm <all the deleted files that svn st showed>
svn ci -m "Cleaned out intermediate build stages"

Andere Tipps

Meine Vermutung? Es gibt eine Datei in Ihrem Repository, das von make clean entfernt ist, aber nicht durch make neu erstellt (wahrscheinlich, weil es nicht mehr notwendig), und es ist etwas in dieser Datei, die Probleme verursacht.

Wenn Sie Ihre .moc Dateien im Repository (sollte man nicht), dann könnten sie nicht mehr synchron mit der Realität bekommen. Hat ein make includes das Problem zu beheben?

Was alles gelöscht wird, wenn Sie eine make clean tun? Was alles ist dort, nachdem Sie das Projekt Remake? Alle Dateien gereinigt sollten neu gemacht werden. Wenn sie es nicht sind, wie Anon. sagt einer von ihnen seltsame Dinge tun könnte.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top