Squeeze/Lenny コンパイル: ライブラリリンクエラー

Squeeze/Lenny コンパイル: ライブラリリンクエラー

ここに問題があります。テストするC ++ライブラリ(「DataTsBroad」)とC ++テストアプリケーション(「DataTsBroadTest」)があります。
実際、Libとテストアプリケーションの両方がDebian Lennyでコンパイルされます。

Debian Lenny(顧客限定)でテストアプリケーションをコンパイルしたいのですが、最新のDebianバージョンで作業するためにSqueezeまたはWheezyでライブラリをコンパイルします。

だから私はSqueezeでLibを正常にコンパイルしましたが、後でLennyでこのLibを使ってテストアプリケーションをコンパイルしようとしたときに失敗しました!リンクエラーがあります:

CXX実行可能ファイルDataTsBroadTest /home/nis/pezierg/test/ProductMak/Export/DataTsBroad/L64/Release/libDataTsBroad64.soに接続します。 'std::ctype::_M_widen_init() const@GLIBCXX_3.4.11' の未定義参照
Collect2: ld は 1 つの終了状態を返します。
make[2]: *** [DataTsBroadTest] エラー 1
make[1]: *** [CMakeFiles/DataTsBroadTest.dir/all] エラー 2
make:*[全体]エラー2

問題の原因は明らかですオーストリムC++ Lib、私のLibでは、すべての用途に注釈を付けたのに効果がありました。

しかし、実際にこの問題をどのように解決できますか?

ベストアンサー1

問題は、他のバージョンのGlibcを使用しているために発生するようです。ライブラリはSqueezeでコンパイルし、アプリケーション(Squeezeのライブラリを使用)はLennyでコンパイルしました。

出力を見てください。

ldd /home/nis/pezierg/test/ProductMak/Export/DataTsBroad/L64/Release/libDataTsBroad64.so

おすすめ記事