2013-03-16 24 views
14

Jestem na aktualnym systemie Ubuntu 12.04. Posiadam unixodbc (v2.2.14 z ubuntu repos), MySQL i odpowiednie sterowniki zainstalowane. Połączony również z prawidłowym DSN. Zweryfikowano, wydając isql DBName UName passwd.brakuje pliku nagłówkowego sql.h, chociaż jest zainstalowany unixODBC

Próbuję skompilować aplikację C, która współdziała z bazą danych za pomocą ODBC. Niemal wszędzie, gdzie szukałem, zdawało się wskazywać, że powinienem mieć zainstalowany "sql.h". A find/-iname sql.h -print pokazał, że go nie mam.

Moje pytanie brzmi: gdzie to jest? Czy coś poszło nie tak podczas instalacji (nie zgłoszono żadnych błędów)? A jakie kroki zalecacie? Reinstalacja? Kompilacja z kodu źródłowego (najnowsza wersja?)?

Odpowiedz

22

Musisz zainstalować pakiet unixodbc-dev, aby pobrać pliki nagłówkowe deweloperskie.

sudo apt-get install unixodbc-dev 

W -dev pakiety zawierają wymagają pliki nagłówkowe potrzebne do kompilacji i budowania programów za pomocą tych nagłówków na wykonywanie połączeń do biblioteki. Same pliki biblioteki byłyby częścią zwykłego pakietu, tj. unixodbc w twoim przypadku.

Jeśli chcesz wiedzieć, który pakiet zawiera pewną pliku, można użyć apt-file:

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

dziękuję Tuxdude. Wiedziałem, że to było dość trywialne. I dzięki za napiwek na 'apt-file'. Sprawia, że ​​wyszukiwanie jest łatwiejsze. – Richard

+1

Na marginesie, dla przyszłych widzów pytania 'pkg-config' może pomóc znaleźć odpowiednie katalogi i biblioteki do użycia w czasie kompilacji i łączenia. Więcej informacji znajdziesz na stronie podręcznika. Pamiętaj, że musi "wiedzieć" o nich. Pakiety biblioteczne z repo są zwykle skonfigurowane tak, aby instalowały się w taki sposób, aby "znali" szczegóły do ​​'pkg-config' – Richard

+0

FYI, wynik uruchomienia' sudo apt-file find sql.h' na Ubuntu 14.04 zawiera tę linię ' unixodbc-dev:/usr/include/sql.h' –