2009-11-27 80 views
6

Tôi đang sử dụng Mã :: Khối 8.02 và tôi có một câu hỏi .. mỗi khi tôi cố gắng biên dịch minimad.c (ví dụ đi kèm với Libmad), tôi nhận được một thông báo lỗi:"sys/mman.h: Không có tập tin hoặc thư mục"

sys/mman.h: No such file or directory và dĩ nhiên một loạt các sai sót theo :(

tôi đã biết rằng các thư viện quản lý bộ nhớ của nó ... câu hỏi đặt ra là: tôi có thể tải ở đâu <sys/mman.h> hoặc nếu? có một trình biên dịch hỗ trợ nhiều thư viện hơn sau đó Code :: Blocks 8.02?

PS Tôi đã liên kết mad.h với trình biên dịch và kiểm tra ra tốt vì vậy tôi biết không có vấn đề ở đó ...

Trả lời

8

Code :: Blocks không phải là trình biên dịch, nó là một IDE. Và <sys/mman.h> là một tiêu đề Unix và không có sẵn trên Windows.

+1

@Pavel Minaev: trên thực tế nếu bạn chỉ định dưới cửa sổ nó vẫn sẽ kéo trong các định nghĩa và khai báo, có nghĩa là, cung cấp mã đã được chuyển sang nền tảng win32 ... bằng cách làm #include hoặc bất kỳ tập tin tiêu đề khác , không nhất thiết ngụ ý nó là unix dựa trên dấu gạch chéo được sử dụng. Hy vọng rằng sẽ giúp! :) – t0mm13b

+5

@tommieb, điều này không liên quan gì đến dấu gạch chéo và mọi thứ cần làm với thực tế là tất cả các tiêu đề trong 'sys' là các API Unix truyền thống. Triển khai Windows thường cung cấp một vài trong số chúng - những thứ dễ thực hiện, chẳng hạn như 'sys/stat.h' hoặc' sys/utime.h' - nhưng không phải tất cả. Việc triển khai duy nhất có thể cung cấp 'mman.h' là Cygwin và Interix (SFU/SUA). –

0

Bạn đang biên dịch mã như thế nào? Bạn có thể cần phải chỉ định -I để chỉ định thư mục bao gồm thêm mà bạn có thể phải khai thác xung quanh cài đặt của bạn/usr/local/include/sys có lẽ. Ngoài ra, bạn cũng sẽ muốn sử dụng cờ -L để chỉ định thư viện cũng được liên kết. Một lần nữa đào xung quanh để tìm vị trí chính xác.

Hy vọng điều này sẽ giúp, Trân trọng, Tom.

5

Đây có lẽ là quá muộn cho các poster ban đầu nhưng nếu có ai cần mman.h cho Windows, tôi đã tìm thấy này: http://code.google.com/p/mman-win32/

Bạn chỉ có thể mở nó trong VS (tôi đã chỉ làm nó trong VS2010) và xây dựng nó và sau đó bạn sẽ nhận được những gì bạn muốn.

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