2011-07-19 45 views
28

Tôi đã có Eclipse cho Java trên máy tính của mình trong vài năm và quyết định cài đặt CDT và tìm hiểu C. Tôi đã cài đặt cả MinGW và Cygwin và CDT phát hiện và cố gắng sử dụng chúng khi tôi thực hiện một dự án mới. Tôi chọn File> New C++ Project và chọn Hello World C++ Project và CygwinGCC toolchain. Tôi đặt tên cho dự án là "asdf" và nhấn "Build Debug" trên thanh công cụ. Trình biên dịch hoàn thành mà không có lỗi. Tôi nhấn Run và không có gì xảy ra. Duyệt thư mục dự án theo cách thủ công và chạy asdf.exe cho tôi một lỗi nói "Chương trình không thể khởi động vì cygwin1.dll bị thiếu trong máy tính của bạn. Hãy thử cài đặt lại chương trình để khắc phục sự cố này". Điều tương tự cũng xảy ra khi sử dụng MinGW, chỉ thiếu một dll khác. Tôi cần làm gì để có thể sử dụng được .exe? Tôi đang chạy Windows 7 x64 và phiên bản mới nhất của Eclipse và CDT.Chương trình không thể khởi động vì cygwin1.dll bị thiếu ... trong Eclipse CDT

EDIT: Sản lượng biên dịch như sau:

**** Build of configuration Debug for project asdf **** 

make all 
Building file: ../src/asdf.cpp 
Invoking: Cygwin C++ Compiler 
g++ -O0 -g3 -Wall -c -fmessage-length=0 -MMD -MP -MF"src/asdf.d" -MT"src/asdf.d" -o"src/asdf.o" "../src/asdf.cpp" 
cygwin warning: 
    MS-DOS style path detected: C:\Users\Shawn\Dropbox\eclipse\asdf\Debug 
    Preferred POSIX equivalent is: /cygdrive/c/Users/Shawn/Dropbox/eclipse/asdf/Debug 
    CYGWIN environment variable option "nodosfilewarning" turns off this warning. 
    Consult the user's guide for more details about POSIX paths: 
    http://cygwin.com/cygwin-ug-net/using.html#using-pathnames 
Finished building: ../src/asdf.cpp 

Building target: asdf.exe 
Invoking: Cygwin C++ Linker 
g++ -o"asdf.exe" ./src/asdf.o 
Finished building target: asdf.exe 

Trả lời

53

thông báo lỗi này có nghĩa rằng Windows là không thể tìm thấy "cygwin1.dll". Các chương trình mà Cygwin gcc tạo phụ thuộc vào DLL này. Các tập tin là một phần của Cygwin, vì vậy rất có thể nó nằm trong C: \ cygwin \ bin. Để khắc phục sự cố, tất cả những gì bạn phải làm là thêm C: \ cygwin \ bin (hoặc vị trí có thể tìm thấy cygwin1.dll) vào đường dẫn hệ thống của bạn. Ngoài ra, bạn có thể sao chép cygwin1.dll vào thư mục Windows của bạn.

Có một công cụ đẹp được gọi là DependencyWalker mà bạn có thể tải xuống từ http://www.dependencywalker.com. Bạn có thể sử dụng nó để kiểm tra các phụ thuộc của các tệp thực thi, vì vậy nếu bạn kiểm tra chương trình đã tạo của bạn, nó sẽ cho bạn biết các phụ thuộc nào bị thiếu và được giải quyết.

+0

Đã hoạt động! Nó cần thêm một vài dll nữa. Vì vậy, tôi giả định cách duy nhất để thực hiện độc lập. Exe là sử dụng VisualStudio, sau đó? –

+1

Điều tôi nên thêm là bạn có thể sao chép các tệp DLL vào cùng thư mục với tệp exe. Các exes được xây dựng bởi VisualStudio thường có phụ thuộc quá, ví dụ: MSVCR71.DLL – phlogratos

+0

Được rồi, có ý nghĩa, cảm ơn! –

Các vấn đề liên quan