.so.xyzが存在する可能性はどのくらいですか?

.so.xyzが存在する可能性はどのくらいですか?

接続するにはOpenCV 2.4.11が必要なアプリケーションがあるので、私のmakeファイルで次のリンカフラグパターンを使用する必要があります。

-l:libopencv_core.so.2.4.11

この仮定はどれほど頑丈ですか?

私の特定の問題は、基本的にv2.4.7を搭載したマイコンピュータUbuntu 14.04にあるため、単に使用すると-lopencv_core誤ったバージョンが得られます。cv::fisheye2.4.11以降を使用していますが、CMakeにfind_package(OpenCV)バージョン指定機能がありません。

答え1

これは特定のパッケージ構成に依存します(非常に脆弱です)。前の項目と一致しない〜の後ライブラリのバージョン。

アプリケーションが特定の機能(リンクの成功/失敗を介してすぐに確認できない)が必要な場合、一般的なアプローチは、ライブラリのリリースバージョン(すべてのライブラリにバージョンがあるわけではありませんが、ほとんど)を確認するいくつかの初期化コードを書くことです。 。関数またはグローバル変数)。

たとえば、OpenCV(ベースOpenCVのバージョンを確認する方法)には次の機能があります。

printf("OpenCV: %s", cv::getBuildInformation().c_str());

追加資料:OpenCV 2.4.10 ドキュメント~のためビルド情報のインポート:

戻り値は、バージョン管理システムのリビジョン、コンパイラのバージョン、コンパイラフラグ、アクティブなモジュール、サードパーティのライブラリなどを含む生のcmake出力です。出力形式は、ターゲットアーキテクチャによって異なります。

関連情報