für ein Projekt Ich muss eine ausführbare Datei erstellen, die alle Bibliotheken enthält, die ich verwendet habe (opencv, cgal), um sie auf einem Computer auszuführen, der diese Bibliotheken nicht enthält. Momentan ist dies meine CMakeLists.txt (ich benutze Linux).Kompilieren einer statischen ausführbaren Datei mit CMake
So sind nur GMP und einige andere C++ Bibliotheken in meiner ausführbaren Datei enthalten. Meine Frage ist: Wie kann ich ein Makefile erstellen, um automatisch alle Bibliotheken in einer statischen Weise einzubinden und nur eine "große" ausführbare Datei zu erstellen, die alle Bibliotheken enthält? Kannst du mir helfen?
Sie sollten verwenden 'Datei (GLOB ...) nicht' Quelle zu sammeln Dateien, die es nicht korrekt funktionieren, wenn Sie neue Dateien hinzufügen. Es ist auch sehr unklar, was dein Problem ist. Die 'add_library (IMPORTED)' Aufrufe machen auch nichts. – pmr
Ich muss eine ausführbare Datei erstellen, die alle Bibliotheken enthält (opencv, cgal und alle gängigen C++ - Bibliotheken), um die ausführbare Datei auf einem anderen Computer auszuführen, auf dem Opencv oder CGAL oder andere C++ - Bibliotheken nicht installiert sind. – Andrea
Zuerst müssen Sie sicherstellen, dass alle Bibliotheken, auf die Sie angewiesen sind, statisch aufgebaut sind. Dies ist oft nicht der Fall. Danach müssen Sie sicherstellen, dass Ihre 'find_package' Aufrufe diese statischen Bibliotheken finden. – pmr