packaging c ++ Programm mit Boost-Bibliotheken mit cmake / cpack

9

Ich habe ein einfaches C ++ - Programm geschrieben, das boost verwendet, das ich auf Rechnern mit der gleichen Architektur mit einem beliebigen Linux-Geschmack (vorläufig) installieren möchte, auf dem möglicherweise einige Boost-Versionen installiert sind. Ich bin neu in der Bereitstellung, habe aber versucht, Dokumente zu lesen und eine CMakeLists.txt zu erstellen, die folgendermaßen aussieht:

%Vor%

Alles kompilieren und läuft gut, aber das Packaging (make package) packt nur die ausführbare Datei und nicht die abhängigen Boost-Bibliotheken ".so"

Wenn ich renne: ldd myprog es sagt mir, es hängt davon ab: linux-vdso.so, libpthread.so, libboost_system.so, libboost_chrono.so, libboost_program_optionen.so libstdc ++. so libgcc_s.so libc.so librt.so libm.so

Das sind die geteilten Bibliotheken, die ich packen möchte (vielleicht muss ich nicht die Standard-Pakete packen)

Wie kann ich cmake anweisen, die richtigen gemeinsamen Objektbibliotheken zu greifen und sie neben die ausführbare Datei zu legen, sodass der Benutzer nur den Ordner entpacken und die ausführbare Datei ohne Installation starten muss?

Statisches Linken ist hier keine Option, da ich eine Reihe von ausführbaren Dateien haben werde, die die gleichen Boost-Bibliotheken verwenden, und es könnte auch einige Lizenzprobleme geben, die statisch gegen libgcc verlinken.

    
darkblue 01.10.2014, 13:48
quelle

1 Antwort

0

unter Ubuntu, vielleicht folgt der Standardweg zum Verpacken den DEBIAN Regeln:

Anstatt Dateien neu zu verteilen, geben Sie die Abhängigkeit durch Einstellung an  CPACK_DEBIAN_PACKAGE_DEPENDS vor include CPack, schau dir das an  Beispiel:

Ссылка

dpkg installiert abhängige Pakete automatisch für Sie.

    
TingQian LI 22.02.2018 07:22
quelle

Tags und Links