Ich schreibe eine C++ - Anwendung, die eine binäre .MAT-Datei lesen muss. Also muss ich libmat und libmex dazu verwenden (beachten Sie, dass ich keine MEX-Dateien verwende). Ich versuche auch boost::program_options
zu verwenden, um Befehlszeilenargumente zu analysieren, da dies eine Nicht-GUI-Anwendung ist. Ich verwende CMake, um mit meiner Build-Umgebung umzugehen.Boost Linking Probleme - Mehrere Versionen
Die Version von Boost, mit der wir arbeiten, ist 1.59. Wenn ich jedoch versuche, in program_options zu verknüpfen, findet CMake die boost::program_options
-Bibliothek mit den MATLAB-Bibliotheken und die MATLAB-Bibliotheken benötigen Boost 1.49. Wenn ich dann versuche, die kompilierte Anwendung auszuführen, stürzt es ab, weil Header von 1.59 verwendet werden, aber die Bibliotheken von MATLABs Kopien von 1.49. Hat jemand irgendwelche Ideen, wie ich die zwei Versionen von Boost verwenden kann, da MATLAB nicht mit 1.59 arbeitet und MATLAB die Include-Dateien für 1.49 nicht enthält.
Es sieht so aus, als ob wir 'boost' mit seinen Versionsnummern im Namen erstellen, das könnte funktionieren, aber unglücklicherweise müssen programm_options und libmat die gleiche Routine aufrufen und sie stehen miteinander in Konflikt. Wenn sie nicht die gleichen Routinen aufrufen, dann sieht es so aus, als könnte ich Boost-Versionen mischen und zum Laufen bringen. Ich habe den Lean Mean C++ - Optionsparser verwendet. – Todd