Компиляция и компоновка Leda 6.3
Я новичок в 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? так что я могу заставить его бежать.
Спасибо всем.
1 ответ
Вряд ли файл библиотеки называется liblibleda.a
или же liblibleda.so
: когда компоновщик видит опцию формы -l<name>
он будет искать файл библиотеки с именем lib<name>.so
(для общих библиотек) или lib<name>.a
(для статических библиотек). Вы, вероятно, просто хотите использовать опцию -lleda
(если разработчики LEDA не сделали что-то умное и не назвали библиотеку чем-то вроде libeda.a
так что вы бы использовали -leda
).
Будет ли это работать, будет также зависеть от согласованности параметров компилятора между установкой и вашей сборкой.