2010-10-26 48 views
6

Tôi biên dịch đơn giản của tôi với #include <sys/socket.h> nhưng không có tệp nào trong số này. Ở đâu, tôi chỉ bắt đầu viết mã trong linux và tôi không biết nó ở đâu. Hay chúng ta cần tải xuống trực tuyến.đâu là tiêu đề ổ cắm trong linux

+1

Không phải là câu trả lời, nhưng bạn có thể muốn xem Boost :: Asio. Đó là nền tảng * và * đi kèm với giao diện C++ thích hợp (trong đó, trong cuốn sách của tôi, đánh bại một API C cụ thể của Unix). YMMV. – DevSolar

+0

Cảm ơn DevSolar để biết thêm thông tin và trợ giúp :) – nXqd

Trả lời

17

Trong trường hợp bạn đã cài đặt các trang thủ công, điểm dừng đầu tiên phải là man socket.

Nếu không có trang hướng dẫn bạn có thể gọi

find /usr/include -name socket.h 

mà kết quả đầu ra

/usr/include/asm/socket.h 
/usr/include/sys/socket.h 
/usr/include/bits/socket.h 
/usr/include/linux/socket.h 

trên hệ thống của tôi, là để bao gồm là sys/socket.h.

Xem thêm Single UNIX Specification.

+0

cảm ơn có một địa điểm khác, công cụ tìm và thư mục bao gồm rất hữu ích :) – nXqd

+2

+1 để dạy cách tìm kiếm – Default

-1

Nó phải là #include <sys/socket.h>. Bạn cũng có thể cần phải bao gồm sys/types.h.

Nhưng nếu điều đó không thành công, bạn có thể cung cấp một đoạn mã nguồn ngắn, bao gồm những tệp bạn đang # include'ing và cách thức và thông báo lỗi bạn đang nhận được không?

2
man socket 

sẽ cung cấp cho bạn câu trả lời.

2

Trên Linux tươi, ví dụ, Ubuntu x86-64, trong khi không có gcc cài đặt, không có socket.h tiêu đề, trong khi cài đặt gcc, bạn có thể find nó dưới /usr/include, đối với tôi, đầu ra là:

$ find /usr/include/ -name socket.h 
/usr/include/asm-generic/socket.h 
/usr/include/x86_64-linux-gnu/asm/socket.h 
/usr/include/x86_64-linux-gnu/bits/socket.h 
/usr/include/x86_64-linux-gnu/sys/socket.h 
/usr/include/linux/socket.h 
+0

Trên Debian và nó phát sinh (Ubuntu, ...) là các tệp tiêu đề cơ bản (bao gồm 'sys/socket.h') trong gói' libc6-dev'. Vị trí dưới '/ usr/include' phụ thuộc vào vòm. – pevik