2013-06-20 50 views
6

Tôi đang cố gắng biên dịch Pyaudio, (một mô-đun Python) từ nguồn, vì tôi đang sử dụng Windows và chỉ có 32-bit nhị phân có sẵn - Tôi cần 64. Theo dõi these instructions Tôi đã tải xuống Cygwin và cài đặt mọi thành phần để an toàn. Cài đặt Portaudio, một mô-đun khác, là bắt buộc trước tiên.Trình biên dịch C không thể tạo tệp thi hành - Cygwin/MiniGW

Khi tôi chạy CFLAGS="-mno-cygwin" LDFLAGS="-mno-cygwin" ./configure, tôi nhận được lỗi configure: error: C compiler cannot create executables. See 'config.log' for more details. config.log có một dòng bổ sung bên dưới thông điệp rằng: gcc: The -mno-cygwin flag has been removed; use a mingw-targeted cross-compiler.

Điều này dẫn tôi để tin rằng có lẽ Cygwin đang sử dụng trình biên dịch sai; hướng dẫn sử dụng MinGw với Cygwin, nhưng tôi chưa bao giờ chỉ định minigw trong tiến trình. Tôi cũng tự hỏi nếu có một cái gì đó trong các tập tin xây dựng PyAudio cần phải được thay đổi cho 64-bit. Tôi không biết gì về C, biên dịch, Cygwin hay MinGW, và mới về lập trình nói chung. Bất kỳ ý tưởng? Tôi có thể cung cấp bất kỳ thông tin nào khác không?

Trả lời

10

Phiên bản hiện tại của Cygwin gcc không hỗ trợ -mno-cygwin nữa vì nó chưa bao giờ thực sự hoạt động chính xác. Thay vào đó, bạn nên sử dụng một trình biên dịch chéo thích hợp, được cung cấp bởi các gói mingw64-i686-gcc, sau đó chạy ./configure --host=i686-w64-mingw32.

+0

Một tùy chọn khác thay vì biên dịch chéo từ môi trường Cygwin là sử dụng cửa sổ bản địa Cài đặt MinGW (bản phân phối TDM hoặc nuwen rất dễ cài đặt) và sử dụng môi trường MSYS của MinGW để xử lý bước './Configure'. Tôi cho rằng bước cấu hình của Pyaudio sẽ hoạt động trong MSYS. –

+0

Cảm ơn bạn rất nhiều. Câu trả lời này đã giải quyết được vấn đề tôi đã đăng. Tôi đã gặp phải các vấn đề khác sau trong bước 'python setup.py build --static-link -cmingw32', ngoài môi trường Cygwin. Lỗi là 'cc1.exe: lỗi: tùy chọn dòng lệnh không được nhận dạng' -mno-cygwin ', lỗi: lệnh' gcc 'không thành công với trạng thái thoát 1'. Khi cố gắng mà không có -ming32, lỗi đã thay đổi thành 'Không thể tìm thấy vcvarsall.bat'. Tôi đã tìm thấy một nhị phân tại http://www.lfd.uci.edu/~gohlke/pythonlibs/ cho phép tôi ngừng khắc phục sự cố này. –

0

Trong một số trường hợp, đó là phần mềm chống vi-rút đang gây ra sự cố. Tôi đã có avast và phải vô hiệu hóa nó.