Câu trả lời chính xác hơn về Jerry.
Quy trình được mô tả bên dưới phải đối mặt với quyền và luật giấy phép của bạn! Tôi biết nó có thể làm việc nhưng quyền phân phối kết quả (hoặc thậm chí thực hiện các thủ tục) có thể được (và tôi thực sự cảm thấy được) bị ràng buộc bởi giấy phép Cygwin. Đó là bởi vì ứng dụng của bạn vẫn sẽ tham khảo Cygwin (mặc dù nó là vô ích - nhưng vẫn còn trong ứng dụng của bạn)
Giả hello.exe
là tên của ứng dụng tuyệt vời của bạn biên soạn dưới Cygwin trong thư mục dự án lớn C:\xxx\yyy\zzz\
Trong giao diện điều khiển cygwin truy cập C:\xxx\yyy\zzz
và nhập
objdump -p hello.exe | grep "DLL Name"
Bạn nhận được tất cả các tệp DLL mà ứng dụng của bạn sử dụng. Sau đó sao chép C:\xxx\yyy\zzz
vào tất cả các tệp DLL được liệt kê và cụ thể cho Cygwin.
Lưu ý rằng ứng dụng của bạn có thể gọi các ứng dụng khác (sử dụng hàm exec) --- tìm thư viện aplications sử dụng và sao chép thư viện này cũng như các ứng dụng này - C:\xxx\yyy\zzz
.
Có thể bạn sẽ phải biên dịch lại dự án của mình bằng tùy chọn loại -L C:\xxx\yyy\zzz
hoặc hơn.Xem tất cả các đường dẫn khác trong nguồn của bạn.
Vì vậy, ứng dụng của bạn trở nên độc lập với cài đặt Cygwin và bạn có thể trình bày chức năng của nó với/chia sẻ nó với ---- người dùng Windows khác không có Cygwin. Nhưng - một lần nữa tôi chỉ ra và hỏi bạn - hãy nhận biết giấy phép và luật pháp hợp pháp của những người sáng tạo Cygwin và quan sát họ!
Tôi nhận rằng bạn thực sự yêu cầu dịch vụ từ CYGWIN.DLL và chỉ sử dụng -Mno-cygwin (hoặc MinGW) sẽ không hoạt động đối với bạn? – RBerteig
Tôi không biết. Tôi đang sử dụng GCJ, nhưng tôi không thể nhận được GCJ mà đi kèm với mingw để làm việc. –