2011-07-19 17 views
28

Birkaç yıl boyunca bilgisayarımda Eclipse for Java'm vardı ve CDT'yi kurmaya karar verdim ve C'yi öğrendim. ve Cygwin ve CDT yeni bir proje hazırlarken bunları tespit ediyor ve kullanmaya çalışıyor. Dosya> Yeni C++ Projesi'ni seçiyorum ve Hello World C++ Projesi ve CygwinGCC takım zincirini seçiyorum. Projeyi "asdf" olarak adlandırıyorum ve araç çubuğunda "Build Debug" 'a basıyorum. Derleyici hatasız olarak tamamlar. Run'a vurdum ve hiçbir şey olmuyor. El ile proje dizinine tarama ve asdf.exe çalışan bana "Program, cygwin1.dll bilgisayarınızda eksik olduğundan başlatılamıyor." Diyerek bir hata veriyor. Bu sorunu gidermek için programı yeniden yüklemeyi deneyin. " Aynı şey MinGW kullanarak olur, sadece farklı bir dll eksik. Kullanılabilir bir .exe olması için ne yapmam gerekiyor? Windows 7 x64 ve Eclipse ve CDT'nin en yeni sürümünü çalıştırıyorum.Program başlatılamıyor çünkü cygwin1.dll dosyası eksik ... Eclipse CDT

DÜZENLEME: şöyle derleyici çıktısı:

**** 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 

cevap

53

Bu hata mesajı, Windows "cygwin1.dll" bulmak mümkün olmadığı anlamına gelir. Cygwin gcc'nin oluşturduğu programlar bu DLL'ye bağlıdır. Dosya cygwin'nin bir parçasıdır, bu yüzden büyük olasılıkla C: \ cygwin \ bin dizinindedir. Sorunu çözmek için tek yapmanız gereken C: \ cygwin \ bin (veya cygwin1.dll dosyasının bulunduğu konum) sistem yolunuza eklemektir. Veya, cygwin1.dll Windows dizininize kopyalayabilirsiniz.

DependencyWalker adlı http://www.dependencywalker.com'dan indirebileceğiniz güzel bir araç var. Bunu çalıştırılabilir programların bağımlılıklarını kontrol etmek için kullanabilirsiniz, böylece oluşturulan programınızı incelerseniz, hangi bağımlılıkların eksik olduğunu ve hangi sorunun çözüldüğünü söyler.

+0

Çalıştı! Bir kaç tane daha fazla hastalığa ihtiyacı vardı. Yani, tek başına yapmanın tek yolu Visual Studio'yu kullanmaktır. –

+1

Ne eklemeliyim, DLL'leri exe ile aynı dizine kopyalayabilirsiniz. VisualStudio tarafından geleneksel olarak üretilen exes bağımlılıkları da vardır, örn. MSVCR71.DLL için – phlogratos

+0

Tamam, mantıklı, teşekkürler! –