Tôi đã cài đặt Cygwin trên hệ thống của mình. Nhưng khi tôi cố gắng sử dụng các lệnh gcc
nó nói:chạy gcc trong cygwin
bash: gcc: command not found
bất cứ ai có thể cung cấp cho tôi những giải pháp, xin vui lòng?
Tôi đã cài đặt Cygwin trên hệ thống của mình. Nhưng khi tôi cố gắng sử dụng các lệnh gcc
nó nói:chạy gcc trong cygwin
bash: gcc: command not found
bất cứ ai có thể cung cấp cho tôi những giải pháp, xin vui lòng?
Một vài điều:
tôi luôn luôn cài đặt toàn Cygwin gói. Các phiên bản trước đã gặp rắc rối với các phụ thuộc được sửa lại, tôi tin, nhưng nó vẫn là một thói quen tốt. Bạn không bao giờ biết khi nào bạn có thể cần bit bí mật nhất của Cygwin.
Bạn có thể phải thay đổi đường dẫn của mình. Tất cả các công cụ nói chung có thể được tìm thấy không sao nếu bạn đang chạy bên trong vỏ bash Cygwin nhưng đó không nhất thiết phải là trường hợp từ cmd.exe
.
Đây không phải là thông tin cuối cùng vì thông báo lỗi của bạn xuất phát từ số bash
, vì vậy tôi khá chắc chắn đó là cách bạn đang chạy nó.
Có một cái nhìn để đảm bảo bạn có /usr/bin/gcc
từ bên trong bash
và con đường của bạn bao gồm /usr/bin
ở đâu đó:
pax> echo $PATH
/usr/local/bin:/usr/bin:/bin:/cygdrive/c/WINDOWS/system32:/cygdrive/c/WINDOWS
pax> which gcc
/usr/bin/gcc
Nếu nó không có ở đó, quay trở lại và cài đặt lại tất cả mọi thứ (hoặc gói phát triển có liên quan nếu bạn không muốn mọi thứ). Nếu nó ở đó và đường dẫn của bạn không có vị trí của nó, hãy thay đổi đường dẫn của bạn, trong /etc/profile
hoặc đường dẫn tương đương trong thư mục chính của bạn.
Điều này có thể do bạn thiếu tiền tố biên dịch .
Theo mặc định, hầu hết các tệp makefiles sẽ tìm kiếm gcc.exe
. Nếu bạn đang sử dụng một trình biên dịch khác, giả sử i686-pc-mingw32-gcc.exe
, thì make
sẽ không tìm thấy nó trừ khi bạn nói. Bạn có thể làm một cái gì đó giống như
PREFIX=i686-pc-mingw32-
make CC=${PREFIX}gcc
Trong cài đặt của tôi không có generic gcc
lệnh hoặc, vì vậy tôi đã liên kết tượng trưng cho nó:
cd /usr/bin
ln -s i686-pc-cygwin-gcc-3.4.4.exe gcc
Bây giờ kiểm tra xem nó hoạt động bằng cách làm which gcc
sẽ cung cấp cho bạn /usr/bin/gcc
và sau đó gcc
sẽ cung cấp cho bạn gcc: no input files
. Lưu ý rằng phiên bản i686-pc-cygwin-gcc-3.4.4.exe của bạn có thể khác. Đăng ký/usr/bin cho nó.
Có thể trong quá trình cài đặt Cygwin bạn chưa chọn gcc, gdb và tạo gói. Vì vậy, hãy thử làm theo các bước được đưa ra trong liên kết Resolving gcc command not found này. Có thể vấn đề của bạn đã được giải quyết.
Tôi đã gặp sự cố tương tự và sự cố đã được giải quyết bằng các bước được đề cập ở trên.
Một vấn đề liên quan khác không được đề cập ở đây, là từ dòng lệnh trình biên dịch cần biến môi trường biến được cập nhật để tìm vị trí của tệp tiêu đề C++. Trong các cửa sổ, bạn chỉ có thể cập nhật môi trường đường dẫn bằng cách sử dụng GUI 'thuộc tính hệ thống nâng cao' và thêm vị trí của tệp C++ bao gồm. Điều này sẽ cập nhật biến môi trường PATH trong Windows cmd & Cygwin tự động khi khởi động lại trình bao.
Để cập nhật PATH của bạn từ Linux hoặc loại vỏ Cygwin ... PATH = $ PATH:/your_path_here Ví dụ: PATH = $ PATH: /cygdrive/c/cygwin/lib/gcc/i686-pc-mingw32/4.7 .3/include/C++ Cũng là một ý tưởng hay để chỉ thêm thư mục include: PATH = $ PATH: /cygdrive/c/cygwin/lib/gcc/i686-pc-mingw32/4.7.3/include/ ... hoặc kiểm tra các thư mục thích hợp cho vị trí cài đặt của bạn bao gồm các tập tin, tôi khuyên bạn nên cài đặt mingw để sử dụng với Cygwin, được envoked với g + +.
Để cài đặt các gói cần thiết bổ sung trong Cygwin chạy lại tiện ích cài đặt Cygwin & kiểm tra cài đặt từ Internet để thêm gói từ kho web và thêm mingw-gcc-g ++ & mingw-binutils. Để biên dịch mã của bạn: g ++ hello.cpp -o hello
Nếu sử dụng tiện ích gcc thay vì biên dịch với lệnh: gcc hello.cpp -o hello -lstdC++ ... để thực thi.
Miễn là bạn đã cài đặt gcc hoặc mingw và đường dẫn đến tệp C++ bao gồm trong môi trường đường dẫn của bạn, các lệnh sẽ hoạt động.
Có một khó khăn để phát hiện sai lầm cũng có thể gây ra lỗi này,
Nếu Makefile của bạn sử dụng PATH
như biến, sai số gcc not found
có thể xảy ra.
Điều này là do nó tạm thời thay đổi đường dẫn hệ thống.
Tôi mất rất nhiều thời gian kiểm tra cài đặt môi trường Cygwin để khám phá điều này, vì vậy tôi sẽ để nó ở đây trong trường hợp điều này giúp mọi người tìm đường đến đây.
Liên kết đã chết, Nếu bạn có thể thực hiện các bước liên quan nếu bạn vẫn có chúng. – Nathan