2012-06-19 64 views

回答

1

要鏈接庫,您需要提供編譯器(或鏈接器)-l標誌和庫名稱。例如,如果要鏈接到名爲libjustine.so的庫,則需要提供編譯器(如果是C,則爲gcc,如果爲C++,則爲g ++)標記-ljustine,然後編譯器會指示鏈接器與文件鏈接libjustine .so(通常至少爲/usr/lib//usr/local/lib/)。

但是,如果要定義自己的庫目錄,例如的lib/目錄項目目錄裏面,你需要使用-L標誌,並提供所需的庫目錄(相對於當前目錄)方式,例如-L/lib/所以編譯器可以指示鏈接來尋找所需的庫從的lib/而不是例如/usr/lib目錄/它查找默認的文件。

+0

你能給我一個例子代碼來做到這一點?例如,我想將libjustinte.so鏈接到main.cpp。是需要安裝libjustine.so還是隻需要將其放在/ usr/lib或/ usr/local/lib中?感謝您的回答! –

+0

我不知道你如何在Eclipse中定義鏈接器選項,所以我不能直接回答你的問題。但是,是的,您需要在所謂的庫路徑中包含* libjustinte.so *文件。這*通常包括例如/ usr/lib和/ usr/local/lib,所以兩者都應該工作。正如我在答案中提到的那樣,您還可以使用'-L'標誌爲您的C或C++編譯器(gcc/g ++)提供相對於當前目錄定義庫的路徑。 – zxcdw

+0

如果我有類似libv8.so.3.8.9.20的東西呢?它似乎沒有工作...... :( – m93a