歡迎來到Linux教程網
Linux教程網
Linux教程網
Linux教程網
Linux教程網 >> Linux基礎 >> Linux教程 >> cygwin移植Linux程序到Windows及在Eclipse中使用cygwin的常見問題

cygwin移植Linux程序到Windows及在Eclipse中使用cygwin的常見問題

日期:2017/2/28 14:47:52   编辑:Linux教程

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吧。

Copyright © Linux教程網 All Rights Reserved