15

ftdi2332hチップを使用するデバイスをWindowsからLinuxに駆動するアプリケーションを移植しようとしています。これらの手順に従って、libftd2xxライブラリをubuntu10.04システムにインストールしました。

サンプルプログラムのいずれかをコンパイルしようとすると、次のエラーが発生します。

/usr/local/lib/libftd2xx.so: undefined reference to `memcpy@GLIBC_2.14'
collect2: ld returned 1 exit status

これを修正する方法に関するガイドラインはありますか?

4

6 に答える 6

3

readme には、glibc 2.15 に付属する Ubuntu 12.04 が記載されています。glibc 2.11.1 に付属する Ubuntu 10.04 を使用しています。表示されているエラー メッセージは、リンク先のバイナリ (ここでは最も可能性が高いlibftd2xx.so) が、リンク先よりも新しい glibc に依存していることを示しています。これは、前の事実を考えると論理的です。

システムのglibcバージョンに対してソースから再コンパイルするかlibftd2xx.so(バイナリのみであるため、おそらくオプションではありません)、OSを更新します。Ubuntu 10.04 はかなり古いです。

最後の手段として (大ハンマーで指を叩く必要がある場合にのみこれを実行してみてください)、システム用の新しい glibc をコンパイルし、/opt.

于 2015-02-17T20:12:43.863 に答える
0

よくわかりませんが、使用しているクロスコンパイラの場合は、互換性のあるバージョンの基本ライブラリがどこかにインストールされている必要があり ( andではありませ)、コンパイラがそれらを使用していることを確認する必要があります。ネイティブ コンパイラ用。また、ツール チェーン全体がバージョン互換であることを確認する必要があります。(そして、これが完全な答えではないことは知っていますが、私が知っているのはそれだけです。)/usr/include/usr/lib

于 2012-09-05T17:41:06.460 に答える
0

libc をダウンロードしてコンパイルし、下にインストールできます/opt/lib/libcX/libc.so.6。次に、スクリプトを作成できます。

LD_LIBRARY_PATH=/opt/lib/libcX:/lib/:/usr/lib:/usr/share/lib
./your_program
于 2012-09-05T17:23:41.517 に答える
-2

Ubuntu 12.04 にアップグレードします。を使用して同じことが起こりQtましたが、glibc ライブラリが古すぎることが判明しました。ぐぐってみると、自分で glibc をアップグレードしようとするのは非常に危険な提案であることがわかりました。

于 2012-09-05T17:11:10.683 に答える