2013-03-16 13 views
14

Sono su un sistema aggiornato di Ubuntu 12.04. Ho unixodbc (v2.2.14 da ubuntu repos), MySQL e i relativi driver installati. Inoltre collegato a un DSN valido. Verificato emettendo isql DBName UName passwd.file di intestazione sql.h mancante sebbene sia installato unixODBC

Sto provando a compilare un'applicazione C che interagisce con il database utilizzando ODBC. Quasi ovunque ho cercato sembra indicare che dovrei avere "sql.h" installato da qualche parte. Un find/-iname sql.h -print ha mostrato che non ce l'ho.

Quindi la mia domanda è: dov'è? Qualcosa non ha funzionato con l'installazione (non sono stati segnalati errori)? E quali passi consigli? Reinstallazione? Compilazione dal codice sorgente (l'ultima versione?)?

risposta

22

È necessario installare il pacchetto unixodbc-dev per ottenere i file di intestazione dello sviluppo.

sudo apt-get install unixodbc-dev 

I -dev pacchetti contengono i file di intestazione richiedere necessari per compilare e creare programmi che utilizzano queste intestazioni per effettuare chiamate alla libreria. I file della libreria stessi faranno parte del pacchetto regolare, ovvero unixodbc nel tuo caso.

Se volete sapere quale pacchetto fornisce un certo file, è possibile utilizzare apt-file:

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

Grazie Tuxdude sacco. Sapevo che era qualcosa di abbastanza banale. E grazie per il suggerimento su 'apt-file'. Semplifica la ricerca – Richard

+1

Per i futuri spettatori della domanda 'pkg-config' può aiutare a trovare le directory di inclusione rilevanti e le librerie da utilizzare in fase di compilazione e tempo di collegamento. Fare riferimento alla pagina man per ulteriori dettagli. Si noti che deve "sapere" su di loro. I pacchetti di libreria da repository di solito sono configurati per l'installazione in modo tale da rendere noti i dettagli a 'pkg-config' – Richard

+0

FYI, il risultato dell'esecuzione di' sudo apt-file find sql.h' su Ubuntu 14.04 contiene questa riga ' unixodbc-dev:/usr/include/sql.h' –