2

ライブラリ版の動的ライブラリ(Macでは.dylib、Windowsでは.dll)をQtメソッドで読み込みたいです。特定のライブラリのいくつかのバージョンを時間をかけて作成し、そのバージョン自体を読みたいとします。プロジェクトにバージョンを追加できます。参照: add version

  1. 私はQtライブラリのバージョンを読む方法を知っています:QT_VERSION_STR
  2. 私は自分のアプリケーションのバージョンを読む方法を知っています:QApplication::applicationVersion()

一部のバージョンでライブラリを手動で作成しています。ここで、設定されたバージョンのファイル (.dylib または .dll) から読み取れるようにしたいと考えています。

4

2 に答える 2

0

投稿してからしばらく経ちましたが、@ Liviu から質問があったので、自分で答えてみます。
まず第一に、満足のいくQt ベースのソリューションが見つかりませんでした。分析のために、安全な使用法を提供するために Qt ルーチンを使用できます。マクロQT_VERSION_CHECKと例を

使用してセキュリティ チェックを備えた新しい動的ライブラリを作成し、古い Qt バージョンを使用しないようにすることをお勧めします。

#include <QtGlobal>`
#if (QT_VERSION >= QT_VERSION_CHECK(5, 0, 0))
#include <QtWidgets>
#else
#include <QtGui>
#endif

ただし、ライブラリが既に作成されており、ローカル マシンに展開されている可能性がある場合、この種のソリューションは適用できません。その場合、ある種の依存関係パーサーが必要になります。つまり、Linux マシンでは、ldd 機能の使用である可能性があります。SO answerを参照してください。osx では、otool解析ツールを使用する必要があります。解析された情報には、ライブラリ ファイル (.dll、.dylib、または .so ファイル) の作成中に使用された Qt のバージョンが含まれます。

于 2017-04-15T12:34:55.160 に答える