2009-11-27 2 views
6

Ich bin mit Code :: Blocks 8,02 und ich habe eine Frage .. jedes Mal wenn ich versuche minimad.c (das Beispiel, das mit libmad kommt) zu kompilieren ich eine Fehlermeldung:„sys/mman.h: Keine solche Datei oder das Verzeichnis“

sys/mman.h: No such file or directory und natürlich eine Reihe von Fehlern :(

ich weiß schon, dass es die Speicher-Management-Bibliothek ... die Frage zu folgen ist: Wo kann ich <sys/mman.h> oder? es ist ein weiterer Compiler, der mehr Bibliotheken dann Code :: Blocks 8,02?

PS unterstützt Ich habe bereits mad.h an den Compiler verknüpft und testeten fein, damit ich weiß, dass es kein Problem gibt es ...

Antwort

8

Code :: Blocks ist kein Compiler, es ist eine IDE. Und <sys/mman.h> ist ein Unix-Header und ist nicht unter Windows verfügbar.

+1

@Pavel Minaev: in der Tat, wenn Sie unter Windows angeben, wird es immer noch in den Definitionen und Deklarationen ziehen, das heißt, vorausgesetzt, der Code wurde win32 Plattform portiert ... indem #include oder eine andere Header-Datei , bedeutet nicht notwendigerweise, dass es unixbasiert ist, weil ein Schrägstrich verwendet wird. Ich hoffe, das hilft! :) – t0mm13b

+5

@tommieb, das hat nichts mit Forward Slash zu tun und alles damit zu tun, dass alle Header unter 'sys' traditionelle Unix-APIs sind. Windows-Implementierungen bieten normalerweise ein paar von ihnen - diejenigen, die einfach zu implementieren, wie 'sys/stat.h' oder' sys/utime.h' - aber nicht alle. Die einzigen Implementierungen, die "mman.h" bereitstellen könnten, sind Cygwin und Interix (SFU/SUA). –

0

Wie kompilieren Sie den Code? Möglicherweise müssen -I angeben extra für die Angabe enthalten Verzeichnis, das Sie vielleicht auf der Installations-Verzeichnis/usr/local/include/sys müssen wühlen können. Außerdem sollten Sie das Flag -L verwenden, um die Bibliothek anzugeben, die ebenfalls verknüpft wird. Suchen Sie erneut nach dem richtigen Ort.

Hoffen, dass dies hilft, Mit freundlichen Grüßen, Tom.

5

Dies ist wahrscheinlich zu spät für das ursprüngliche Plakat aber wenn jemand mman.h für Windows benötigt, habe ich das gefunden: http://code.google.com/p/mman-win32/

Sie sollten nur in VS (ich nur getan habe öffnen können es in VS2010) und bauen Sie es und dann sollten Sie bekommen, was Sie wollen.

Verwandte Themen