0

私は LEDA を初めて使用し、OpenSuse 12.1 で LEDA6.3 Free Edition に取り組んでいます。手始めに、マニュアルhttp://www.leda-tutorial.org/en/official/ch01s02.htmlのように、「Hello LEDA world」という簡単なコードを書いてみました。

#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ライブラリにリンクする方法を誰かが手伝ってくれるかどうか疑問に思っていましたか? 実行できるようにします。

皆さんありがとう。

4

1 に答える 1

0

liblibleda.aライブラリ ファイルがorで呼び出されることはほとんどありませんliblibleda.so。リンカが形式のオプションを検出すると、 (共有ライブラリの場合) または(静的ライブラリの場合)-l<name>という名前のライブラリ ファイルを検索します。おそらく、オプションを使用したいだけです(LEDA 開発者が巧妙に何かを行い、ライブラリを次のように呼び出した場合を除きます)。lib<name>.solib<name>.a-lledalibeda.a-leda

これが機能するかどうかは、インストールとビルドの間でコンパイラ オプションが一貫しているかどうかにも依存します。

于 2012-10-30T19:56:37.927 に答える