2011-02-06 118 views
0

我有以下問題:未定義的參考

我在64位Ubuntu上使用32位版本的Qt。在我的項目中,我想包括圖書館FCam,以便爲諾基亞N900手機的相機編程。當我包括路徑在我的項目文件中的庫,似乎Qt不覺得還是因爲我得到了以下錯誤消息只是不使用它:

undefined reference to "FCam::Image::Image(FCam::Image const&)" 

我利布斯行看起來是這樣的:

LIBS += -lpthread -ljpeg -Llib -L/home/username/FCam 

我不知道爲什麼這不起作用,因爲我有另一個它的工程示例項目。我也嘗試了一些線條的變化,但徒勞無益。

謝謝您的回答, Tsveti

回答

1

隨着-L /家/用戶名/ FCAM你告訴鏈接器尋找 它應該與鏈接庫時,在那個目錄中。你需要告訴它什麼庫再次鏈接(這是用-l完成)。 我不知道你的lib,但似乎你應該添加一個--lfcam或類似的東西。

+0

是的,我已經試過這也太,但它不爲我工作,儘快添加-lFCam,編譯器說無法找到-lFCam – Tsveti 2011-02-06 16:44:09

1

看來你混了你的庫語句的正確的順序 - 從我得到了我所期望的那幾個信息:順序

LIBS += -L/home/username/FCam -lFCam -lpthread -ljpeg 

爲什麼?

因爲首先你必須通過-L [MY_LIB_DIR]定義庫的位置。

接下來,你必須通過-lMyLib來添加你的庫 - 你的庫文件必須被命名爲libMyLib.a或libMyLib.so。

最後你添加系統庫,因爲它很可能會發生,你的應用程序或你的libs依賴於系統庫libs pthread和jpeg。

剛剛嘗試新的訂單,我相信你會得到它;)

的Ciao, 克里斯