請問有關lib檔引用上的問題 |
尚未結案
|
chang1981
一般會員 發表:31 回覆:28 積分:11 註冊:2008-09-18 發送簡訊給我 |
各位前輩好
小弟最近在學習一個市面上的視覺處理函式庫使用方式(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 發送簡訊給我 |
|
chang1981
一般會員 發表:31 回覆:28 積分:11 註冊:2008-09-18 發送簡訊給我 |
|
gaiazhang
一般會員 發表:2 回覆:7 積分:1 註冊:2009-02-09 發送簡訊給我 |
|
chang1981
一般會員 發表:31 回覆:28 積分:11 註冊:2008-09-18 發送簡訊給我 |
===================引 用 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的位置應該是沒有關係的 若有錯還請不吝指正謝謝!!! |
本站聲明 |
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。 2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。 3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇! |