cygwin使用FAQ
1.許多機器上跑不起來,可能由於應用程序的沖突造成,對api進行hook的軟件很可能跟cygwin有沖突。
比如殺毒軟件,google desktop search,反rootkit的工具等等,這些沖突常會導致如下的fork error:
bash 3252 fork_parent: child 3260 died waiting for longjmp
before initialization
bash: fork: Bad file descriptor
2.把cygwin下的bin目錄添加到PATH後,直接運行g++, gcc, 顯示“訪問被拒絕” (access denied),
檢查g++.exe, gcc.exe是否只有1k大小,如果是,那麼文件是符號鏈接,那麼把文件重命名一下(備份)。
然後把g++-3.exe(或者g++-4.exe)拷貝一份,重命名為g++.exe。 把gcc-3.exe拷貝一份,重命名為gcc.exe。
Eclipse中使用cygwin的常見問題
3.eclipse中使用cygwin,cygwin需要安裝如下軟件包:
gcc, gcc-core,gcc-g++, gcc-mingw-core, gcc-mingw-g++, make , gdb, binutils
4.如果是用cygwin到2010年1月為止的最新版本1.7.1, 如果cygwin沒有裝在c:/cygwin,
那麼eclipse 3.5無法自動識別cygwin作為toolchain,解決的一個簡單辦法是把cygwin目錄拷貝一份到c:/。
5.配置Run Configuration,選擇應用程序時,顯示錯誤“Program is not a Recognized Executable”的解決方法,
在“項目屬性”中, 配置 "C/C++ Build" -> "Settings" -> (on the right) "Binary Parsers" 。
在 "Binary parser:"中勾選PE Windows Parser" , 確保其他選項都沒有勾選就ok了。
6. eclipse中調試時,由於GDB使用的unix格式的路徑,而eclipse使用的是windows路徑,導致找不到匹配的代碼,
需要手工設置:
In Eclipse in Preferences->C/C++->Debug->"Common Source Lookup Path" add new "Path Mapping".
把linux的路徑映射到windows的路徑,比如/cygwin/e映射成E:/
不過最後運行起來,eclipse調試的時候,string的文字值不能直觀地顯示在variable窗口中。 windows中使用cygwin和elipse開發c++,簡直是雞肋。我試試用netbeans吧。