2009年7月16日 星期四

multiple target patterns

記錄...
因為我們嵌入式要用到SystemC...
所以這幾天把Linux和Windows上的eclipse環境給架了一下

Linux上的很簡單
Fedora安裝的時候就可以選擇JDK和Fedora eclipse套件
(Ubuntu都還要再自己去下載,預設並沒有包在裡面可以選...?!)
而且CDT預設都已經包在裡面了...
所以連下載都不用再下載
只要把SystemC的Library給下載好
在eclipse中把Library給include進去就OK了!!
只是不知道是甚麼原因...
Fedora eclipse的"編輯介面"有點怪怪的...
像是我隨便點一下就會變成檔案更動的狀態:hello.cpp*
再點一次又變回來:hello.cpp
另外就是如果我用滑鼠選取了一段文字(反白)
再點其他地方這段文字就會自動被刪掉... =M="
這樣要是我要複製某段code到另一個地方
很容易就會因為所複製的這段文字被刪掉而出錯!!
造成編輯上的麻煩...

再加上怕未來實驗室會用到的軟體只有Windows版
所以在Windows上我也把eclipse的環境給架了起來
但Windows就比Linux麻煩多了
不但要重新下載CDT...
還要再多下載Cygwin或MinGW
(不過因為我找到的文件是用Cygwin,所以最後選擇了Cygwin...)

但沒想到CDT在Cygwin上有Bug!!
每次在Build Project的時候都會出現:multiple target patterns 的錯誤訊息
Google了一下發現是CDT自己的問題...
點我觀看1
點我觀看2

原來是CDT沒有將Windows格式的路徑 (ex:C:\hello)
轉成Cygwin格式的路徑 (ex:/cygdrive/c/hello)
在eclipse的Project Explorer中都可以看到SystemC include的路徑都是:
C:/systemc-2.2.0/include (純粹只有轉成Unix格式,但Cygwin並不適用...)
所以在Build後所產生的*.d檔中的路徑都會有問題~

最後Google找到了解決方法...
點我觀看

------- Comment #11 From Doyle Rhynard 2007-01-21 18:55:15 -0400 -------
> Yes, Using make 3.80 also solved the problem for me. It seams like CDT needs
> to use quoted strings in the generated .d files?

I recently stumbled upon this bug when I had to reinstall Eclipse/CDT and
Cygwin. After wasting a considerable amount of time trying to determine the
cause of "multiple target patterns" make error, I finally was able to come up
with a Google search that diagnosed the problem and provided a solution. That suggestion was to replace "C:\" with "\cygdrive\c\" for specifying include directories. I have found it easiest simply to edit the ".cdtbuild" file directly.


原來只要把SystemC所需要include Library的路徑由:
C:\systemc-2.2.0\include
改成:\cygdrive\c\systemc-2.2.0\include 即可
果然之後再Build Project就沒出現這個錯誤訊息了!!

沒想到這麼簡單~
但卻搞了我不少時間... QQ
不過好在問題最後是順利解決了!! ^M^"

2 則留言:

Jeff 提到...

法克高手!

法克 提到...

你也不賴!
XDDD