Tommy 碎碎念

Tommy Wu's blog

« 上一篇 | 下一篇 »

使用 cygwin 取代 msys 來搭配 mingw 使用
post by tommy @ 23 十一月, 2012 21:11

由於在 msys 中碰到的 make freeze 問題, 所以就將開發的環境由 msys 轉到 cygwin 來使用了.

其實 msys 是當初 cygwin 1.3 的一個子集, 現在換到 cygwin, 其實就是裝上了一個完整的 cygwin 環境, 而不是之前使用 msys 一樣, 只取所需要的部份來使用.

因為不想用裡頭的 cross compiler, 所以打算用與之前 msys 的方式來直接使用 mingw. 原本以為只要像是在 msys 中一樣, mount /mingw 進來, 在 PATH 裡頭, 把 /mingw/bin 放到 /bin 之前就可以用了. 結果.... 執行 gcc 是沒什麼問題, 不過... 由於 Windows 的換行字元是 CRLF, 而 cygwin 是用 LF, 所以.... 跑 configure 時, 會去讀取一些程式的執行結果來判斷時, 就會多出一個 ^M (就是 CR 這個字元), 結果.... 執行的結果就會有問題了. 看來... 原本 msys 還會把這個 CR 處理掉.

找了一下, 發現 bash 本身就有個 igncr 的選項可以用, 試著執行 set -o igncr, 會發現是把 igncr 設為 on 了, 不過並沒有作用. 所以看起來... 這選項並不會影響到已經執行的 shell. 所以改試著去設定 SHELLOPTS 這個環境變數. 不過.... 去設定這變數時會說這是一個唯讀的變數, 無法變更. 所以.... 我們要在執行 bash 之前就去設定這個變數就可以了.

Del.icio.us Furl HEMiDEMi Technorati MyShare
迴響
暱稱:
標題:
個人網頁:
電子郵件:
authimage

迴響

  

Bad Behavior 已經阻擋了 56 個過去 7 天試圖闖關的垃圾迴響與引用。
Power by LifeType. Template design by JamesHuang. Valid XHTML and CSS