Wenn Sie Ihren Code gegen Abhängigkeiten wie OpenCV erstellen mussten, hängt es davon ab, ob Sie statische oder dynamische Verknüpfungen erstellt haben.
Sehen Sie hier, welche Abschnitte abdeckt, diese Ideen hat: http://en.wikipedia.org/wiki/Library_(computing)
Für den Anfang, versuchen Sie dies auf der Kommandozeile tun:
ldd compiled-program
Sie Ausgabe wie folgt erhalten (als Beispiel, ich habe ldd
auf meinem python
binär in /usr/bin
):
[email protected]:/usr/bin$ ldd python
linux-gate.so.1 => (0xb7ff7000)
libpthread.so.0 => /lib/i686/cmov/libpthread.so.0 (0xb7fd5000)
libdl.so.2 => /lib/i686/cmov/libdl.so.2 (0xb7fd1000)
libutil.so.1 => /lib/i686/cmov/libutil.so.1 (0xb7fcd000)
libssl.so.0.9.8 => /usr/lib/i686/cmov/libssl.so.0.9.8 (0xb7f82000)
libcrypto.so.0.9.8 => /usr/lib/i686/cmov/libcrypto.so.0.9.8 (0xb7e2a000)
libz.so.1 => /usr/lib/libz.so.1 (0xb7e16000)
libm.so.6 => /lib/i686/cmov/libm.so.6 (0xb7df0000)
libc.so.6 => /lib/i686/cmov/libc.so.6 (0xb7caa000)
/lib/ld-linux.so.2 (0x80000000)
Python will eine Menge zusätzlicher Sachen, wie libssl
(Teil von OpenSSL), die GNU C-Bibliothek (libc
) und einige andere.
Jetzt, wenn Sie diese Sache auf andere Systeme verschieben werden, hoffen Sie entweder, dass sie eine Ihrer Umgebung ähnliche Umgebung haben, verteilen Sie sie als Quelle und verwenden Sie etwas wie das autotools
/GNU Build System, um es zu bauen Sie können auf all das verzichten und alles statisch in Ihre Binärdatei einbinden, die all das mit sich bringt, was Ihre ausführbare Datei benötigt, ohne eine dynamische Verknüpfung zu benötigen.
bearbeitet Ihre Entschuldigung für eine dumme Frage, weil es nicht ist. :) –
Das ist nachdrücklich keine dumme Frage. – jason