Как использовать конкретную версию Qt для проекта с многопроектным CMake? - PullRequest
0 голосов
/ 22 марта 2019

Я имею в виду сценарий, подобный представленному ниже:

Для правильной сборки проекта A требуется Qt 5.5.1, который доступен по системному пути, то есть /usr/lib/x86_64-linux-gnu.

Для правильной сборки проекта B необходим Qt 5.12.0, который установлен в домашнем каталоге, т.е. /home/user/Qt/5.12.0/gcc_64.

Проект A CMakeLists.txt использует find_package(Qt5 5.5.1 EXACT REQUIRED COMPONENTS Core etc.)

Проект B использует CMakeLists.txt.find_package(Qt5 5.12.0 EXACT REQUIRED COMPONENTS Core etc. PATHS "/home/user/Qt/5.12.0/gcc_64" NO_DEFAULT_PATH).

Для обоих списков CMake требуется версия CMake 2.8.12.

Результаты:

  • Проект A работает как шарм.
  • Проект B предупреждает о runtime library [libQt5Core.so.5] in /usr/lib/x86_64-linux-gnu may be hidden by files in: /home/user/Qt/5.12.0/gcc_64
  • Компоновщик проекта B сообщает о большом количестве неопределенных ссылок.

Как мы видим, это решение не работает.Почему?

РЕДАКТИРОВАТЬ: Qt5_DIR кажется правильным для каждого проекта, но Qt5<ComponentName>_VERSION выключены.Похоже, что компоненты, используемые в проекте A, сняты и неправильно использованы для проекта B. Как это преодолеть?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...