2013-03-16 24 views
14

Tôi đang sử dụng hệ thống Ubuntu 12.04 mới nhất. Tôi có unixodbc (v2.2.14 từ repos ubuntu), MySQL và trình điều khiển có liên quan của nó được cài đặt. Cũng được kết nối với DSN hợp lệ. Được xác minh bằng cách phát hành isql DBName UName passwd.tệp tiêu đề sql.h bị thiếu mặc dù unixODBC được cài đặt

Tôi đang cố gắng biên dịch một ứng dụng C tương tác với cơ sở dữ liệu bằng ODBC. Hầu như ở khắp mọi nơi tôi tìm kiếm dường như chỉ ra rằng tôi nên có "sql.h" được cài đặt ở đâu đó. A find/-iname sql.h -print cho thấy tôi không có nó.

Vì vậy, câu hỏi của tôi là: nó ở đâu? Đã xảy ra lỗi khi cài đặt (mặc dù không có lỗi nào được báo cáo)? Và bạn đề nghị những bước nào? Cài đặt lại? Biên dịch từ mã nguồn (phiên bản mới nhất?)?

Trả lời

22

Bạn cần cài đặt gói unixodbc-dev để nhận tệp tiêu đề phát triển.

sudo apt-get install unixodbc-dev 

Gói -dev chứa các tệp tiêu đề bắt buộc để lập và xây dựng chương trình bằng cách sử dụng các tiêu đề này để thực hiện cuộc gọi đến thư viện. Bản thân các tệp thư viện sẽ là một phần của gói thông thường, tức là unixodbc trong trường hợp của bạn.

Nếu bạn muốn biết những gói cung cấp một tập tin nào đó, bạn có thể sử dụng apt-file:

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

Cảm ơn Tuxdude rất nhiều. Tôi biết đó là một thứ khá tầm thường. Và cảm ơn cho tip trên 'apt-file'. Làm cho việc tìm kiếm dễ dàng hơn – Richard

+1

Ngoài ra, đối với người xem trong tương lai của câu hỏi, 'pkg-config' có thể giúp tìm các thư mục bao gồm có liên quan và các thư viện để sử dụng tại thời gian biên dịch và thời gian liên kết. Tham khảo trang hướng dẫn để biết thêm chi tiết. Lưu ý rằng nó phải "biết" về chúng. Các gói thư viện từ repos thường được cấu hình để cài đặt theo cách để nó "biết" các chi tiết về 'pkg-config' – Richard

+0

FYI, kết quả chạy' sudo apt-file tìm sql.h' trên Ubuntu 14.04 chứa dòng này ' unixodbc-dev:/usr/include/sql.h' –

Các vấn đề liên quan