Forum: PC-Programmierung Fehler QT(Linux) bei boost static link


von Boost (Gast)


Lesenswert?

Hallo,

ich habe ein Problem beim linken von boost unter Linux sobald ich in QT 
in der .pro -static angebe.

Die Boost Lib habe ich so gebaut:
./bootstrap.sh
dann
./b2 link=static

Angaben unter QT .pro Datei:

INCLUDEPATH += boost_1_68_0
LIBS += -L/boost_1_68_0/stage/lib -lboost_system -pthread -static

Kompilerfehler:
cannot find -lQt5Widgets
cannot find -lQt5Gui
cannot find -lQt5Core
cannot find -lGL
collect2: error: Id returned 1 exit status


Sobald ich in der .pro das "-static" weglasse funktioniert alles! Hat 
jemand eine Idee wie man das Problem lösen kann? Scheinbar verursacht 
das -static, dass QT die eigenen Dinge nicht mehr finden, sehr 
komisch...?

von Rolf M. (rmagnus)


Lesenswert?

Boost schrieb:
> Kompilerfehler:
> cannot find -lQt5Widgets
> cannot find -lQt5Gui
> cannot find -lQt5Core
> cannot find -lGL
> collect2: error: Id returned 1 exit status

Das sind Linkerfehler, die besagen, dass du keine static-Version von Qt 
und von OpenGL hast.

> Sobald ich in der .pro das "-static" weglasse funktioniert alles!

Dann werden die dynamischen Versionen von Qt und OpenGL verwendet.

> Hat jemand eine Idee wie man das Problem lösen kann? Scheinbar verursacht
> das -static, dass QT die eigenen Dinge nicht mehr finden, sehr
> komisch...?

Nein, das -static verursacht, dass was nach anderem gesucht wird. Und da 
du das nicht hast, wird's nicht gefunden.

von Skyper (Gast)


Lesenswert?


von Boost (Gast)


Lesenswert?

Mein Ziel ist ja nur boost statisch zu linken und nicht die QT Dinge. 
Dachte, da -static hinter dem boost-verzeichnis steht, dass dann das 
static auch nur für boost gilt.

Geht es denn nicht nur boost statisch zu linken und dabei QT so zu 
lassen wie es ist?

von Rolf M. (rmagnus)


Lesenswert?

Boost schrieb:
> Mein Ziel ist ja nur boost statisch zu linken und nicht die QT Dinge.
> Dachte, da -static hinter dem boost-verzeichnis steht, dass dann das
> static auch nur für boost gilt.

Es ist genau umgekehrt: Das -static gilt für alle Libs, die danach 
kommen.

von Oliver S. (oliverso)


Lesenswert?

Brauchst du denn überhaupt eine boost-lib? Das allermeiste in boost ist 
doch header-only.

Oliver

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.