Qt: разница между VERSION и VER_MAJ, VER_MIN, VER_PAT в qmake - PullRequest
0 голосов
/ 17 января 2019

Я использую Linux для общей библиотеки в Qt5.

с момента использования в .pro любой из:

VERSION = 1.2.3

или

VER_MAJ = 1
VER_MIN = 2
VER_PAT = 3

сгенерировать одно и то же имя для библиотеки (lib.so, lib.so.1, lib.so.1.2, lib.so.1.2.3), в чем же разница?

Документация Qt гласит:

VERSION Указывает номер версии приложения, если приложение шаблон указан или номер версии библиотеки, если библиотека шаблон указан.

VER_MAJ Указывает основной номер версии библиотеки, если библиотека шаблон указан.

VER_MIN Указывает младший номер версии библиотеки, если библиотека шаблон указан.

VER_PAT Указывает номер версии исправления библиотеки, если библиотека шаблон указан.

Поскольку я не использую шаблон app, они одинаковы? Есть причина, почему я должен предпочесть один из них?

Редактировать: Кажется, VER_MAJ, VER_MIN, VER_PAT всегда имеет приоритет над VERSION в определении вывода версии библиотеки, независимо от порядка определения.

1 Ответ

0 голосов
/ 18 января 2019

Состояния документации Qt

Что касается qmake, документация Qt не совсем точна, если не сказать больше. Всегда нужно обращаться к исходному коду qmake, чтобы узнать правду.

Так что после некоторого поиска в источнике это выглядит так:

  1. Win : VERSION используется для ресурсов Windows (как приложения, так и библиотеки); VER_MAJ используется только для суффикса общей библиотеки (например, «mylib1.dll»); если VER_MAJ не установлено, то оно инициализируется с VERSION; VER_MIN и VER_PAT игнорируются.
  2. * nix : VERSION игнорируется, за исключением случаев, когда некоторые из VER_MAJ, VER_MIN или VER_PAT не установлены напрямую, а затем инициализируются косвенно с VERSION.

Таким образом, для Win, вероятно, следует использовать только VERSION. Для * nix реальной разницы нет.

...