2009-10-05 36 views
6

Tôi đang thử mã được đưa ra trong Lập trình mạng Unix bởi Richard Stevens. nhưng tôi không thể lấy mã để biên dịch.Tôi cần cài đặt gói nào để sử dụng ổ cắm định tuyến?

đây là mã nguồn. http://www.cs.cmu.edu/afs/cs.cmu.edu/academic/class/15213-f00/unpv12e/libroute/

tôi không có tệp tiêu đề net/if_dl.h và tệp tiêu đề net/route.h không bao gồm các hằng số và cấu trúc mà mã sử dụng.

+0

Bạn đã grepped để xem liệu các hằng số có trong một tệp tiêu đề khác không? Nó có thể là nó đã di chuyển trong 8 năm qua. –

Trả lời

4

Đó là API dành riêng cho BSD và Linux không hỗ trợ nó. Chức năng tương đương (không tương thích với nguồn) được cung cấp bởi họ dòng ổ cắm netlink . "man 7 netlink" sẽ giúp bạn bắt đầu, nhưng bạn có thể sẽ cần phải thực hiện một số công việc chuyển.

3

Tôi không có mặt trên máy mà tôi có thể thực hiện việc này ngay bây giờ, nhưng có lẽ tôi vẫn có thể trợ giúp. Nếu phân phối của bạn sử dụng yum (ví dụ như RHEL):

yum provides if_dl.h 

Hoặc nếu bạn sử dụng apt (ví dụ như Ubuntu/Debian):

sudo apt-get install apt-file 
sudo apt-file update 
apt-file search if_dl.h 

Nếu apt-file đã được cài đặt, bước đầu tiên sẽ không cần thiết , và tôi không thể nhớ chắc chắn nếu thứ hai là. Ngoài ra, tôi tin rằng cả hai nhà quản lý gói đều làm việc cả với tên tệp và có đường dẫn đầy đủ.

Hy vọng điều này sẽ phù hợp với bạn hoặc người khác đang đọc nội dung này và bạn sẽ nhận được câu trả lời!

+0

i am on suse 11 –

5

Xin lưu ý, bạn KHÔNG cần phải thực hiện trong thư mục "libroute"

Xem tài liệu:

cd ../libroute # only if your system supports 4.4BSD style routing sockets 
make   # only if your system supports 4.4BSD style routing sockets 

cd ../libxti # only if your system supports XTI 
make   # only if your system supports XTI 

Linux không phải là phong cách BSD định tuyến, chỉ cần vào ../intro và xây dựng ví dụ ~!

0

cố gắng sao chép if_dl.h từ mạng và đặt vào/usr/include/net. có thể hoạt động và có thể cần libs khác. Có lẽ tiếng Anh của tôi không tốt. Tha thứ cho tôi.

+2

Trước tiên, bạn nên tạo lại vấn đề trong môi trường của mình và cung cấp giải pháp cụ thể thay vì câu trả lời "thử/có thể". StackOverflow không phải là diễn đàn thảo luận. Đó là một trang web câu hỏi/câu trả lời, vì vậy câu trả lời của bạn nên được kiểm tra đầy đủ trước khi đăng. –

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