IBM PureData System for Analytics Version 7.1

Gemeinsam genutzte Bibliothek kompilieren und verlinken

Nach der Erstellung Ihrer C++-Datei für Ihre neue benutzerdefinierte gemeinsam genutzte Bibliothek müssen Sie die C++-Datei mithilfe des nzudxcompile-Befehls kompilieren.

Informationen zu diesem Vorgang

Der Befehl befindet sich im Verzeichnis /nz/kit/bin/adm. Der Kompilierungsprozess erstellt die Objektdateien, die auf dem IBM® Netezza-Host und auf den Netezza-SPUs ausgeführt werden.

Sie kompilieren und verlinken C++-Dateien von gemeinsam genutzten Bibliotheken, damit sie von UDXs verwendet werden können, die auf sie verweisen. Sie kompilieren und verlinken eine gemeinsam genutzte Bibliothek für die Hostumgebung und auf den SPUs mithilfe des nzudxcompile-Befehls.

Anmerkung: Im Gegensatz zu anderen UDXs können Sie eine gemeinsam genutzte Bibliothek mit dem nzudxcompile-Befehl nicht in einem Schritt kompilieren und registrieren. Sie müssen die Bibliothek mithilfe von CREATE LIBRARY registrieren.

Gehen Sie wie folgt vor, um eine gemeinsam genutzte Bibliothek namens mylib zu kompilieren und zu verlinken:

Vorgehensweise

  1. Erstellen Sie ein kompiliertes Objekt für die Netezza-Hostumgebung:
       nzudxcompile /home/nz/libs/mylib.cpp --host
    -o /home/nz/libs/mylib.o
  2. Verlinken Sie das kompilierte Objekt mit einer gemeinsam genutzten Bibliothek für den Host:
       nzudxcompile --objs /home/nz/libs/mylib.o --host -o
    /home/nz/libs/host/mylib.so
  3. Erstellen Sie ein kompiliertes Objekt für die Netezza-SPU-Umgebung:
       nzudxcompile /home/nz/libs/mylib.cpp --spu -o
    /home/nz/libs/mylib.o 
  4. Verlinken Sie das kompilierte Objekt mit einer gemeinsam genutzten Bibliothek für die SPU:
       nzudxcompile --objs /home/nz/libs/mylib.o --dynamic --spu
    -o /home/nz/libs/spu/mylib.so
    Anmerkung: Der Schalter --dynamic wird nur verwendet, wenn Sie gemeinsam genutzte Bibliotheken für die SPU-Umgebung kompilieren.

Ergebnisse

Der nzudxcompile-Befehl erstellt die folgenden Objektdateien:
mylib.o_x86
Die Objektdatei für den Netezza-Host (i386 Linux-Plattform auf x86).
mylib.o_spu10
Die Objektdatei für die Linux-basierten Rev10-SPUs in Modellen von IBM Netezza 1000 und Netezza 100.

Nächste Schritte

Nach der Erstellung der kompilierten Objektdateien müssen Sie die Bibliothek für das Netezza-System registrieren, damit andere UDXs sie als Abhängigkeit angeben können.



Feedback | Copyright IBM Corporation 2013 | Letzte Aktualisierung: 2013-07-31