Ich habe ein einfaches Programm, das anscheinend nicht libgmp verwendet.Haskell GHC erstellen ausführbare Datei nicht abhängig von GMP?
-- Sample.hs
main = putStrLn "hi"
Wenn ich es mit den Standardoptionen auf Linux kompilieren
$ ghc Sample.hs
Dies erzeugt eine ausführbare Datei namens Sample
. Ich wollte sehen, welche Bibliotheken von einem einfachen Programm benötigt werden, das keine willkürlichen Ganzzahlen verwendet.
$ ldd Sample | sed -e 's/[(].*[)]/(0x000...)/'
linux-vdso.so.1 (0x000...)
libgmp.so.10 => /usr/lib64/libgmp.so.10 (0x000...)
libm.so.6 => /lib64/libm.so.6 (0x000...)
librt.so.1 => /lib64/librt.so.1 (0x000...)
libdl.so.2 => /lib64/libdl.so.2 (0x000...)
libc.so.6 => /lib64/libc.so.6 (0x000...)
/lib64/ld-linux-x86-64.so.2 (0x000...)
libpthread.so.0 => /lib64/libpthread.so.0 (0x000...)
Gibt es eine Fahne ich GHC passieren kann, es zu sagen, nicht eine ausführbare Datei in Abhängigkeit von der libgmp.so
Bibliothek zu erzeugen. Ich möchte libgmp nicht statisch verknüpfen, im Idealfall möchte ich GHC so konfigurieren, dass kein Code ausgegeben wird, der von dieser Bibliothek abhängt. Ich bin in Ordnung mit einigen reduzierten Funktionen wie einem Fehler, wenn ich versuche, eine Integer
oder etwas ähnliches zu verwenden.
Wenn Sie sich Sorgen um die LGPL-Lizenz machen, müssen Sie lediglich Folgendes beachten: A: Ihre Binaries nicht versenden (z. B. häufiger Webserver) oder B: Nur Objektcode zusammen mit Ihren Binärdateien senden ; Alles, was Sie tun müssen, um der LGPL zu entsprechen, ist es, den Benutzern zu erlauben, sich mit einer anderen kompatiblen Version der LGPL-Bibliothek zu verbinden. – Cubic