So ignorieren Sie die Hauptmethode aus einer dynamischen verknüpften Bibliothek in C ++
-
13-12-2019 - |
Frage
In unserer Anwendung verwenden wir mehrere dynamisch verknüpfte Bibliotheken.Wir haben kürzlich die Version eines dieser Bibliotheken aktualisiert.Die Entwickler dieser Bibliothek bieten eine Hauptmethode seit dieser neuen Version (nichts weiter als druckende Hallo-Welt).
Das Problem ist, dass wir GTEST und GMOCK verwenden, die ihre eigene Hauptmethode generieren.Wenn wir jetzt unser Test-Binärer ausführen, erhalten wir nur "Hallo World", so dass die falsche Hauptmethode ergriffen wird.
Wie können wir die Hauptmethode der zu verwendenden Tests erzwingen?
update: Dies scheint ein GMOCK / GTEST-Problem zu sein.Die Hauptmethode wird normalerweise generiert, dies ist jedoch nicht der Fall, da es jetzt eine bereits vorhandene Hauptmethode findet.
Lösung
In Ihrer Situation gibt es keine Möglichkeiten.Sie müssen die Hauptseite aus der gemeinsamen Bibliothek entfernen.Es gehört einfach nicht dazu.
Andere Tipps
Ich hatte ein ähnliches Problem mit zwei Bibliotheken mit Hauptmethoden, die durch Ändern der Reihenfolge der Bibliotheken an den Linker gelöst wurden.