Я новичок в LEDA и работаю над бесплатной версией LEDA6.3 для OpenSuse 12.1.
Для начала я попытался написать простой код «Hello LEDA world», как в руководстве http://www.leda-tutorial.org/en/official/ch01s02.html.
#include <LEDA/string.h>
#include <iostream>
using leda::string;
using std::cout;
int main()
{
string msg = "Hello LEDA world!";
cout << msg << "\n";
}
Фаза компиляции работает нормально, и я сгенерировал .o файл.
Но они отметили, что этот файл должен быть связан с библиотекой LEDA, и единственная библиотека, доступная в бесплатной версии, это 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
Мне было интересно, может ли кто-нибудь помочь мне с тем, как связать мой файл с библиотекой leda? так что я могу заставить его бежать.
Спасибо всем.
Вряд ли файл библиотеки называется liblibleda.a
или же liblibleda.so
: когда компоновщик видит опцию формы -l<name>
он будет искать файл библиотеки с именем lib<name>.so
(для общих библиотек) или lib<name>.a
(для статических библиотек). Вы, вероятно, просто хотите использовать опцию -lleda
(если разработчики LEDA не сделали что-то умное и не назвали библиотеку чем-то вроде libeda.a
так что вы бы использовали -leda
).
Будет ли это работать, также будет зависеть от согласованности параметров компилятора между установкой и вашей сборкой.
Других решений пока нет …