Tôi muốn biết làm thế nào tôi có thể ngăn chặn gcc dưới Cygwin tự động thêm phần mở rộng .exe vào các tệp được biên dịch, vì tôi vừa gây ra nhiều nhầm lẫn với "tệp bị thiếu". Đối với bối cảnh, tôi đang làm việc trên một dự án C cho trường đại học và tôi thường làm việc trong các phòng thí nghiệm chạy Ubuntu (khởi động kép với Windows), nhưng để làm việc ở nhà tôi thích sử dụng máy Windows của tôi, ergo Cygwin. Nếu tôi chỉ loại bỏ phần mở rộng nó vẫn hoạt động tốt trên một trong hai hệ thống, nhưng nó là khá bực bội để phải thay đổi lệnh để bao gồm phần mở rộng bất cứ khi nào tôi vừa biên dịch nó dưới Cygwin.Làm thế nào tôi có thể ngừng gcc dưới Cygwin từ việc thêm ".exe" vào các tệp thực thi được biên dịch?
Tôi đã tra cứu các câu hỏi thường gặp từ Cygwin để thấy rằng có thể là vấn đề liên quan đến biến môi trường trong .bashrc hoặc .bash_profile (see here), nhưng tôi không có dòng lệnh ninja và không quen thuộc với cấu hình chỉnh sửa file ... tôi tìm thấy hai câu hỏi liên quan cũng cho thấy các hành vi tương tự, nhưng không có gì để làm với cố gắng thay đổi nó:
Compiling with gcc (cygwin on windows)
Executable file generated using gcc under cygwin
Bất kỳ ý tưởng? EDIT: Nó thực sự là một MPI trong C dự án vì vậy tôi có một Makefile gọi mpicc nhưng đó không phải là thực sự có liên quan đến vấn đề, kể từ khi tôi chỉ cố gắng với gcc là tốt và cả hai làm điều tương tự. Với mục đích của câu hỏi này, các lệnh và kết quả tôi nhận được là:
$ gcc -o hello hello.c
$ ls
hello.c hello.exe
$./hello
Hello, world!
$./hello.exe
Hello, world!
Lưu ý rằng chạy có hoặc không có phần mở rộng làm điều tương tự trong vỏ, nhưng nó không có mpirun đó là lý do tôi muốn thay đổi hành vi này.
EDIT: Tôi cuối cùng đã quyết định rằng Windows không phải là môi trường lập trình cho tôi. Từ bây giờ, mọi công việc có thể được thực hiện trong Linux sẽ là. Cảm ơn tất cả.
Dòng lệnh bạn đang sử dụng để gọi gcc là gì? –
Điều này không trả lời câu hỏi của bạn, nhưng bạn có thể muốn thử chạy Ubuntu trong một máy ảo như VirtualBox. Sau đó, bạn sẽ không phải lo lắng về bất kỳ vấn đề như thế này và môi trường của bạn ở nhà có thể được chính xác như một trong trường của bạn. –