2010年6月29日 星期二

[程式][BCB] [Linker Fatal Error] {解決方案總論}

[Linker Fatal Error] {解決方案}

這幾天因為接觸GifImage 2.2 and BCB5 BCB6
看到網路上有人提出網路上的問題(如下)想一個解決方案,跟大家分享。
http://www.delphigroups.info/3/6/143309.html

2004-07-11 11:39:21 PM
cppbuilder80
Trying to embedd the TGIFImage V2.2 in BCB5 in a simple display-GIF
worked fine.
But when trying to compile the examplesfor some (e.g. gifexplore.exe)
I get a fatal error: Unable to open file 'DRAGDROPC4.LIB'.
What is this file and where can I get it?
Thanks a lot,
MR



關於網路上抓到的BCB程式
因為(以下三種可能)
  1. 版本差異(VERSION) EX. BCB3 BCB4 BCB5 BCB6 BCB2010
  2. 引用的函式庫(LIB. )差異 EX. SPARELIBS 或 LIBRARIES
  3. PACKAGES的內容差異 EX. package1.bpi 自訂的OOXX.bpi
都很容易有[Linker Error] 或 [Linker Fatal Error] 之類的問題

EX:
[Linker Error] Error processing module D:\PROGRAM FILES\BORLAND\CBUILDER6\LIB\SMCMPNTC6.LIB

or
[Linker Fatal Error] Fatal: Unable to open file 'IP4000V6.LIB'

or
[fatal error]: Unable to open file 'DRAGDROPC4.LIB'

or
Unable to open file OOXX123.bpi ??!!.bpi

總是有找不到的問題

那...

(1)如果你要編譯的專案Project有用到 "OOXX.LIB" 這個函式庫的話,那你就必須先取得這個檔案,然後再用 Project Manager 把這個檔案加入到你的專案裡面,才能夠順利的編譯.
(2)如果你要編譯的專案並沒有用到 "OOXX.LIB" 這個函式庫的話,那你就可以先利用某個文字編輯器把專案檔案 *.bpr 給打開,然後搜尋關鍵字「OOXX.LIB」,找到之後把它刪掉,存檔之後重新開BCB並載入這個專案, 重新編譯看看是否可行?


如果你想要編譯的專案是別人寫好的範例專案,
在他的 BCB 開發環境中已經預設要連結 "OOXX.LIB" 這個函式庫,
但你的 BCB 開發環境中並沒有這個檔案,才會造成這種錯誤,
因此建議你先照 (2) 中的方法試試,或許就沒有問題了.

同理:
要拿掉沒有用到的*.lib *.bpr的連結
用文字編輯器把專案檔案 *.bpr 打開
搜尋你[Linker Fatal Error]的*.lib *.bpr
找到後刪掉,存檔重開BCB編譯看看

神奇的事....
編譯過就了.....


注意事項:

1. 要刪或加入的是 .bpr 還是 .lib EX. 自訂的*.lib *.bpr
2. 相關搜尋路徑,是否正確 EX. ..\..\gifimage.obj 要換成 C:\GifImage\gifimage.obj
3. 記得 using (即使是 BCB) EX. 宣告 或 引用
4. 注意你宣告或引用的是[重新編譯]還是[參考]


本文內容參考:

熱門文章