Wie zu zwingen Qmake keine symbolischen Links zu erstellen, wenn TEMPLATE = lib Ziel?

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

  •  21-08-2019
  •  | 
  •  

Frage

Ich habe eine (teilweise) qmake-Projektdatei wie folgt aus:

TEMPLATE=lib
TARGET=whatever
SOURCES=whatever.cpp
HEADERS=whatever.h

Dies wird - atleast standardmäßig - erstellen Sie eine Bibliothek und ein paar symbolische Links wie folgt aus:

libwhatever.so -> libwhatever.so.0.1.0
libwhatever.so.0 -> libwhatever.so.0.1.0
libwhatever.so.0.1 -> libwhatever.so.0.1.0
libwhatever.so.0.1.0

libwhatever.so.0.1.0 ist die eigentliche Bibliothek binär, der Rest von ihnen sind nur symbolische Links.

Was ich möchte, ist erreichen, dass keine symbolischen Links überhaupt erstellt werden oder die Reihenfolge, was um andere Art und Weise, so dass libwhatever.so die tatsächliche binäre und Rest wäre sind die symbolischen Links.

War es hilfreich?

Lösung

Wenn Sie die QMAKE_LN_SHLIB Variable mit einem No-op außer Kraft setzen, wird es nicht die symbolischen Links machen.

QMAKE_LN_SHLIB       = :

Andere Tipps

Ich habe versucht, auf Vorschlag von swarfrat geschrieben und es funktioniert, aber es gibt einen Fehler mit einer (eher hilfreich) Nachricht:

Error 1 (ignored)

So, hier ist ein weiterer Weg, um die Symlinks zu löschen, ohne Fehler zu erzeugen:

unix: QMAKE_POST_LINK = find $$DESTDIR -maxdepth 1 -type l -exec rm -f {} \;

Weitere Informationen zu diesem Qmake Variable zu finden sind hier .

Sie können unten auf Ihre Pro-Datei hinzu:

CONFIG += unversioned_libname unversioned_soname

Ich habe getestet erfolgreich zu sein.

Ich studierte die Qmake Quellen und die mkspecs, aber es scheint, dass die Erzeugung der symbolischen Links ist eher fest verdrahtet.

Von dem, was ich in den Quellen gefunden, es scheint, dass, wenn Sie plugin zu CONFIG hinzufügen, werden nur die Bibliothek erzeugt werden, ohne dass die symbolischen Links.

Ich kann Ihnen nicht sagen, ob so andere Nebenwirkungen hat zu tun, wenn. Aber es scheint die einzige Möglichkeit zu sein, ohne loszuwerden, die symbolischen Links mit einem Skript zu schreiben, die nach dem Bau ausgeführt wird.

Es könnte helfen, wenn Sie uns einen Hinweis geben, warum es wichtig ist ...

Was, wie Sie vielleicht einen Skript betrachten, die Dinge nach Belieben neu ordnen wird, die am Ende des Build-Prozesses ausgeführt wird.

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