2012-10-05 49 views
5

Tôi đã cố cài đặt/biên dịch các thư viện C trong Windows 7 bằng Cygwin và MinGW. Tuy nhiên, tôi nhận được lỗi như thế này trong make:Cài đặt/biên dịch bằng Cygwin/MinGW - Cách đặt "đường dẫn" bao gồm? (liên kết tượng trưng?)

sys/resource.h: No such file or directory 
sys/times.h: No such file or directory 

tôi trước đây nghĩ rằng nó có thể là một vấn đề với các thư viện cụ thể và yêu cầu ở đây: Various issues installing igraph in Visual Studio 2010 and Cygwin/MinGW ("sys/time.h not found"), nhưng sau khi gặp phải những lỗi tương tự với các thư viện khác nhau, tôi nghĩ rằng vấn đề nằm trên đầu của tôi.

Cố gắng

cygwin/usr/include/sys/times.hcygwin/usr/include/sys/resource.h tồn tại. Sau khi nhận được lời khuyên về các liên kết tượng trưng, ​​tôi đã sử dụng ln -s /usr/include/sys sys để đảm bảo rằng sys/times.h hoạt động.

Tôi đã xem kết quả make cho một thư viện cụ thể (igraph). Nó nói rằng nó đã nhập vào một thư mục "src". Vì vậy, tôi đã đi đến thư mục src và đã làm điều tương tự: ln -s /usr/include/sys sys và đảm bảo rằng sys/times.h cũng hoạt động trong thư mục src.

Tuy nhiên, tôi vẫn nhận được:

fatal error: sys/times.h: No such file or directory 

Câu hỏi

Làm thế nào để thiết lập "đường dẫn" cho make để tìm 'sys/times.h' hoặc các file khác trong thư mục/usr/include/sys thư mục? Tôi đang thiếu gì ở đây?

P.S.

Vui lòng mang theo tôi vì tôi thường là người dùng Windows và không quen với thuật ngữ Linux.

Trả lời

4

Sau nhiều cuộc điều tra, vấn đề hóa ra là rằng:

  1. MinGW không có sys/times.h.
  2. Cygwin có nó, nhưng Cyqwin của tôi đã sử dụng gcc trong python thư mục của tôi, đó là gcc của MinGW.

này được phát hiện trong khi cố gắng để giải quyết một vấn đề ở đây:

Cannot compile C code with #include <sys/times.h> in Cygwin

Vì vậy, nó chỉ ra rằng vấn đề của tôi không có gì để làm với các con đường bao gồm hoặc làm cho các liên kết tượng trưng, ​​nhưng đúng hơn, gcc phiên bản/loại đã sai. Điều này thực tế eluded tôi vì tôi đã chạy một cài đặt sạch Cygwin và không biết rằng nó sẽ tự động sử dụng gcc MinGW trong thư mục Python của tôi.

1

thấy http://mail.kde.org/pipermail/kde-windows/2006-May/000194.html như họ nói ngay cả khi times.h được đặt ở đó chức năng của mình có thể không được thực hiện bởi mingw

khi chạy ./configure tôi nhận được này (nó khó có thể nhận thấy) http://i49.tinypic.com/2q80pzk.png

vì vậy đầu tiên thử sao chép times.h và sau đó sử dụng ./configure và xem nếu lỗi này là không có

+0

Đã thử điều này. "lỗi nghiêm trọng: sys/times.h: Không có tệp hoặc thư mục nào" một lần nữa. :( – Legendre

+0

Về đề xuất mới nhất của bạn: Thư mục gốc của MSYS có vẻ là C: \ MinGW \ msys \ 1.0 và không có cách nào để quay lại xa hơn này. Có thư mục "sys" trong 1.0 hoặc bất kỳ thư mục con nào của nó. Tôi không chắc chắn bây giờ để làm một "make -I \ path \ sys" như trong chủ đề đó. Hơn nữa, tôi thực sự đã thử chạy "make -I \ usr \ include \ sys" trong cả Cygwin và MinGW nhưng vẫn nhận được như vậy " sys \ times.h không có tập tin hoặc thư mục "vấn đề. – Legendre

+0

Đã cố gắng sao chép lần.h đến C: MinGW \ include nhưng ./configure vẫn nói sys/times.h khả năng sử dụng ... không và hiện diện ... không. có thể để có được/cài đặt các công cụ trong "sys" thích hợp để có được sys/times.h? – Legendre

0

Build libigraph với MinGW mà không cần phải "sys/times.h"

Đó có thể là thú vị cho tất cả các tòa nhà "igraph" và không muốn tạo ra nó với "Cygwin" nhưng với "mingw" .

Trong môi trường "msys/mingw" của tôi, tôi có "mã nguồn" trong "C: \ msys \ 1.0 \ src" thư mục.
igraph dir. == C: \ msys \ 1.0 \ src \ igraph-0,6

  • Run c: \ msys \ 1.0 \ msys.bat
  • cd vào thư mục gốc trên cd/
  • cd để igraph cd usr/src/igraph-0,6
    Lưu ý: không có thư mục usr trong C: \ msys \ 1.0 \. Hãy cẩn thận do'nt tạo một usr thư mục !!!
  • Loại ./configure Bây giờ msys shell nhìn cái gì đó như

quản trị @ drserver-p /usr/src/igraph-0.6
$ ./configure

  • nhấn "Enter"

phải mất một ile.

Thay đổi tệp.

  • goto igraph-0.6 \ src
  • Open with Notepadd ++ hoặc một trình soạn thảo các "Makefile"
    Chuyển đến dòng 832 hoặc tìm kiếm libf2c_la_CFLAGS =
    Đặt -DUSE_CLOCK sau libf2c_la_CFLAGS =
    Bây giờ, có vẻ như libf2c_la_CFLAGS = -DUSE_CLOCK -DSkip_f2c_Undefs ....
  • mở igraph-0.6 \ src \ f2c \ uninit.c
  • Chuyển đến dòng 182 hoặc serach cho _control87 (EM_DENORMAL
    comment dòng này /* _control87 (EM_DENORMAL ..... */
  • Mở igraph-0.6 \ src \ f2c \ s_paus.c
    Goto Line 84 hoặc tìm kiếm pause();
    nhận xét dòng này /* pause(); */

  • Loại làm Bây giờ msys shell nhìn cái gì đó như

quản trị @ drserver-p /usr/src/igraph-0.6
$ make

  • nhấn "Enter"

Nếu hoạt động mất khoảng 1 giờ!