CMake: Verknüpfung mit zwei vorkompilierten Bibliotheken, die von verschiedenen Versionen der dritten Bibliothek abhängig sind

8

Ich versuche, ein Projekt zu kompilieren, das ich mit vorkompilierten Versionen von zwei Bibliotheken (PCL und Matlab) verknüpfe, die gegen verschiedene Versionen von Boost (1.58 und 1.56) kompiliert werden.

Dies gibt mir viele Warnungen, wenn ich mein Projekt erstelle:

%Vor%

usw. für andere Bibliotheken (libtiff, libfreetype, libexpat, libxml2, libQt5OpenGL ...), aber keine für Boost.

Wenn ich mein Programm kompiliere und laufe, bekomme ich diesen Fehler

%Vor%

Ich vermute, dass dies daran liegt, dass alle Bibliotheken demselben Suchpfad hinzugefügt werden und PCL mit Matlabs Boost-Version verknüpft wird, die den Fehler und die Warnungen anzeigt. Ich habe viel Zeit damit verbracht zu versuchen, es zu verknüpfen, ohne abzustürzen, aber ohne Erfolg.

Inspiriert von: Linkpfad-Verwirrung nach dem Aufruf target_link_libraries Ich habe versucht, Matlab mit add_library ,

hinzuzufügen %Vor%

(und viele Variationen davon), aber ich konnte keine Kombination finden, die das Problem gelöst hat, da ich auch auf die gleichen Probleme stoße wie der Fragesteller.

Es scheint, dass eine andere Frage ein sehr ähnliches Problem betrifft, aber es wurde nicht beantwortet MATLAB-Bibliotheken führen zu Konflikten mit vorhandenen Bibliotheken - CMake Crash

>

Ich denke, ich könnte das Problem lösen, indem ich PCL kompiliere und 1.56 von Grund auf hochsetze, aber das möchte ich vermeiden.

Minimales "Arbeitsbeispiel":

CMakeLists.txt

%Vor%

main.cpp

%Vor%

Alles, was mir auf dem Weg zu einer Lösung helfen kann, wird sehr geschätzt.

    
Atnas 27.09.2017, 11:58
quelle

0 Antworten