2012-10-30 131 views
0

我是LEDA的新手,我正在開發OpenSuse 12.1上的LEDA6.3免費版。 作爲一個開始,我試圖編寫一個簡單的代碼「Hello LEDA world」,如手冊http://www.leda-tutorial.org/en/official/ch01s02.html編譯和鏈接Leda 6.3

#include <LEDA/string.h> 
#include <iostream> 

using leda::string; 
using std::cout; 

int main() 
{ 
    string msg = "Hello LEDA world!"; 

    cout << msg << "\n"; 
} 

編譯階段工作正常,我生成.o文件。 但他們提到,該文件需要鏈接到勒達圖書館和免費版本唯一可用的庫是libleda.a和libleda.so

我嘗試使用下面的命令鏈接:

g++ -o welcome welcome.o -L$LEDAROOT -llibleda 

我得到的是:

/usr/lib64/gcc/x86_64-suse-linux/4.6/../../../../x86_64-suse-linux/bin/ld: cannot find -llibleda 

我想知道,如果有人可以幫助我如何我的文件與勒達庫鏈接?所以我可以讓它運行。

謝謝大家。

回答

0

這是不可能的庫文件被稱爲liblibleda.aliblibleda.so:當鏈接器發現的形式-l<name>的一個選項,它會爲命名lib<name>.so(共享庫)庫文件或lib<name>.a(靜態庫)搜索。您可能只想使用選項-lleda(除非LEDA開發人員做了一些巧妙的操作,並將庫稱爲libeda.a,因此您需要使用-leda)。

這是否正常工作還取決於編譯器選項在安裝和構建之間是否一致。