6

WindowsでいくつかのLinuxライブラリを使用するために、MinGW/MSYSの使用を開始しました。使用する

./configure --prefix=/mingw 
make
make install

これまではうまく機能しましたが、「ln -s」呼び出しで、「makeinstall」で2つの異なるライブラリが失敗しました。これは次のようになります。

rm -f /mingw/lib/libvamp-sdk.so.2
ln -s libvamp-sdk.so.2.0.0 /mingw/lib/libvamp-sdk.so.2
ln: creating symbolic link `/mingw/lib/libvamp-sdk.so.2' to `libvamp-sdk.so.2.0.0': No such file or directory
make: *** [install] Error 1

まず第一に、makefileの意図は何ですか?/mingw/lib/libvamp-sdk.so.2.0.0が存在するため、上記の「ln-s」呼び出しを次のように置き換えます

ln -s /mingw/lib/libvamp-sdk.so.2.0.0 /mingw/lib/libvamp-sdk.so.2

動作しますが、これが作者の意図したものかどうかはわかりません。

さらに重要なのは、なぜこれが発生するのか(ネイティブLinuxシステムで正常に機能すると思います)、それを回避する最も簡単な方法は何ですか?makefileを手動で編集することもできますが、これに対するより良い解決策があるかどうか疑問に思っています。

ご入力いただきありがとうございます。

4

2 に答える 2

3

ビルドを誤って構成しました。*.soファイルはLinux用であり、Windows用ではありません。--host=i686-pc-mingw32ほとんどの場合、configure呼び出しのようなオプションを追加する必要があります。

于 2011-07-16T09:41:31.903 に答える
1

Linux システムでは、変更されていない

ln -s libvamp-sdk.so.2.0.0 /mingw/lib/libvamp-sdk.so.2

ライブラリの以前または以降のインスタンスにリンクされたプログラムで libvamp-sdk.so.2.0.0 を使用できるようにする相対シンボリック リンクを作成します。ただし、これは .so ベースのシステムを構築する場合にのみ意味があります。

mingw ビルドの場合、共有ライブラリの代わりに DLL をビルドし、メカニズムが異なるため、これらの行は単に不要です。これらの 2 行は Makefile から安全に削除できます。DLL とライブラリ (libfoo.aと libfoo.dll.a ) がインストールされていることを確認してください。前者は /mingw/bin に、後者は /mingw/lib にあります。そのためには、おそらく Makefile を変更する必要があります。

于 2011-07-16T09:20:48.360 に答える