全國最多中醫師線上諮詢網站-台灣中醫網
發文 回覆 瀏覽次數:1814
推到 Plurk!
推到 Facebook!

請問有關lib檔引用上的問題

尚未結案
chang1981
一般會員


發表:31
回覆:28
積分:11
註冊:2008-09-18

發送簡訊給我
#1 引用回覆 回覆 發表時間:2009-02-05 19:43:51 IP:61.230.xxx.xxx 訂閱
各位前輩好
小弟最近在學習一個市面上的視覺處理函式庫使用方式(EVision)
拿到光碟灌好以後第一件事當然就是跑一下範例程式來試試看
於是我將相關的lib檔路徑設置好並且加入我的專案當中後
成功的將範例程式run了起來
接下來問題來了

我想要按照範例程式自己寫一個程式, 也用一樣的方式設置了lib檔 include檔的環境跟加入專案
(假設引入了 AAA.lib 以及 BBB.lib兩個函式庫檔案)
但發現就是會有一個錯誤訊息
[Linker Error] Unresolved external
'EGenericROI::DrawFrame(void *, E_FRAME_POSITION, int, float, float, float, float)' referenced from D:\EVISION_TEST0205\UNIT1.OBJ
無論怎樣就是會有這一個linker error
於是小弟想檢查 是哪一個lib檔找不到這個function
便把範例程式重新打開
將AAA.lib BBB.lib都從專案當中移除
結果發現出現的錯誤訊息是

[Linker Error] Unresolved external
'EGenericROI::DrawFrame(HDC__ *, E_FRAME_POSITION, int, float, float, float, float)' referenced from D:\BCB SAMPLES\EROI\SDIMAIN.OBJ

我可以確定的事情是
1.範例專案跟我的專案所include的 .h檔 內容是一模一樣的
2.範例專案跟我的專案對應給.h檔的 AAA.lib跟BBB.lib內容是一模一樣的

那為什麼範例專案加入AAA,BBB兩個檔案就可以執行,而我自己的專案不行
又為何範例專案缺少AAA,BBB之後出現的linker error 會跟我自己專案的函式引數不同??
(我懷疑這是我專案不能執行的原因,因為lib檔內找不到符合這種引數的函式可供連結)
(我檢查過.h檔函式原型的內容 , 寫的是HDC__ *,)

請大家幫幫小弟吧我實在是卡住了!!! 感恩!!!!

gaiazhang
一般會員


發表:2
回覆:7
積分:1
註冊:2009-02-09

發送簡訊給我
#2 引用回覆 回覆 發表時間:2009-02-10 10:43:37 IP:222.92.xxx.xxx 訂閱

试试看 在project->option -> package->把builder with runtime packge 选上。
------
Gaia
chang1981
一般會員


發表:31
回覆:28
積分:11
註冊:2008-09-18

發送簡訊給我
#3 引用回覆 回覆 發表時間:2009-02-10 11:09:23 IP:61.230.xxx.xxx 訂閱
謝謝G大的建議~ 本來我就有勾起來了~
gaiazhang
一般會員


發表:2
回覆:7
積分:1
註冊:2009-02-09

發送簡訊給我
#4 引用回覆 回覆 發表時間:2009-02-10 14:38:43 IP:222.92.xxx.xxx 訂閱
link的 目标文件不一样哦 
// D:\EVISION_TEST0205\UNIT1.OBJ
// 另一个的路径不同。
应该是这个原因吧。
我也是新手,大家一起讨论啊。

//之前我也遇到过类似的link error,原因就是没有找到目标文件。解决办法如上面说的。
------
Gaia
chang1981
一般會員


發表:31
回覆:28
積分:11
註冊:2008-09-18

發送簡訊給我
#5 引用回覆 回覆 發表時間:2009-02-10 15:39:35 IP:61.230.xxx.xxx 訂閱

===================引 用 gaiazhang 文 章===================
link的 目标文件不一样哦
// D:\EVISION_TEST0205\UNIT1.OBJ
// 另一个的路径不同。
应该是这个原因吧。
我也是新手,大家一起讨论啊。

//之前我也遇到过类似的link error,原因就是没有找到目标文件。解决办法如上面说的。

在小弟的認知裡
OBJ檔應該是要去找lib內的函式實體進行連結, 因此OBJ不是目標文件
應該說OBJ檔是來源文件吧
來源的位置放在哪裡應該是沒有影響才對的
link
(.cpp .h)=OBJ ---->XXX.h(包含被呼叫函式原型) ---> YYY.lib(包含被呼叫函式的實體)

而unresolved external這樣的錯誤訊息應該是出在link的階段, 因此只要我的XXX.h路徑有
設對. lib有加入專案並且有設對其所在位置的路徑, OBJ的位置應該是沒有關係的

若有錯還請不吝指正謝謝!!!


系統時間:2024-04-26 13:58:15
聯絡我們 | Delphi K.Top討論版
本站聲明
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。
2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。
3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇!