2013-03-16 12 views
14

Ich bin auf einem aktuellen Ubuntu 12.04-System. Ich habe unixodbc (v2.2.14 von ubuntu repos), MySQL und seine relevanten Treiber installiert. Auch mit einem gültigen DSN verbunden. Bestätigt durch Ausgabe isql DBName UName passwd.sql.h Header-Datei fehlt, obwohl unixODBC installiert ist

Ich versuche, eine C-Anwendung zu kompilieren, die mit der Datenbank unter Verwendung von ODBC interagiert. Fast überall, wo ich suchte, schien zu zeigen, dass ich "sql.h" irgendwo installiert haben sollte. A find/-iname sql.h -print zeigte, dass ich es nicht habe.

Also meine Frage ist: wo ist es? Hat bei der Installation etwas schief gelaufen (es wurden jedoch keine Fehler gemeldet)? Und welche Schritte empfehlen Sie? Neuinstallation? Kompilierung aus Quellcode (die neueste Version?)?

Antwort

22

Sie müssen das Paket unixodbc-dev installieren, um die Entwicklungs-Header-Dateien zu erhalten.

sudo apt-get install unixodbc-dev 

Die -dev Pakete enthalten die Verwendung dieser Header zu kompilieren und bauen Programme erforderlichen Header-Dateien benötigen, um Anrufe in die Bibliothek zu machen. Die Bibliotheksdateien selbst wären Teil des regulären Pakets, d. H. unixodbc in Ihrem Fall.

Wenn Sie wissen möchten, welches Paket eine bestimmte Datei enthält, könnten Sie apt-file verwenden:

sudo apt-file update 
sudo apt-file find sql.h 
+0

Vielen Dank Tuxdude. Ich wusste, dass es etwas ziemlich Triviales war. Und danke für den Tipp zu 'apt-file'. Erleichtert die Suche – Richard

+1

Nebenbei, für zukünftige Betrachter der Frage 'pkg-config' kann helfen, die relevanten Include-Verzeichnisse und Bibliotheken für die Kompilierung und Link-Zeit zu finden. Weitere Informationen finden Sie auf der Manpage. Beachten Sie, dass es über sie "wissen" muss. Bibliothekspakete aus Repos werden normalerweise so konfiguriert, dass sie die Details zu "pkg-config" bekannt machen. – Richard

+0

FYI, das Ergebnis der Ausführung von 'sudo apt-file find sql.h' auf Ubuntu 14.04 enthält diese Zeile' unixodbc-dev:/usr/include/sql.h' –