Использование Cmake для вывода информации библиотеки

0

Здравствуйте, я знаю, что могу использовать графический интерфейс cmake для вывода информации библиотеки с помощью простых команд:

FIND_PACKAGE( OpenCV REQUIRED )
MESSAGE("${OpenCV_DIR}")
MESSAGE("${OpenCV_LIBS}")

Я хотел бы использовать эти команды из командной строки dos. Но я действительно не знаю, как использовать инструмент cmake из командной строки. Может быть, кто-то здесь знает, как это делать.

РЕДАКТИРОВАТЬ

хорошо, решения, которые вы представили, были правильными, но, как я вижу, я не очень хорошо объяснял, что я задумал. Я действительно пытался получить результаты СООБЩЕНИЯ ("$ {OpenCV_DIR}") без использования файла CMakeLists.txt.

EDIT 2

Хорошо, я нашел то, что искал сейчас! Я пытался использовать функции pkg-config с cmake на окнах. Cmake дает эту функцию, и здесь показано, как это сделать:

http://blogs.kde.org/2011/11/09/cool-new-stuff-cmake-286-2-pkg-config-compatible-mode-added-use-eg-autotools

для моего поиска в opencv я пробовал это, и он работал:

cmake --find-package -DNAME=OpenCV -DCOMPILER_ID=GNU -DLANGUAGE=C -DMODE=COMPILE

Не знаю, как изменить gnu с визуальной студией, но это нормально. Спасибо вам всем.

  • 0
    К сожалению, я не знаю в первую очередь о GUI ... :-D
Теги:
makefile
cmake

2 ответа

1
Лучший ответ

Предполагая, что CMake был правильно установлен через установочный файл, который можно загрузить на веб-сайте cmake.org, каталог, содержащий исполняемый файл cmake.exe должен присутствовать в вашем PATH.

Поэтому вы можете сделать следующее (я предполагаю очень мало знаний DOS):

  1. Откройте командную строку
  2. Введите cd C:\the\directory\where\to\build (замените на то, где находится каталог сборки, предположим, что он находится чуть ниже каталога, где находится CMakeLists.txt)
  3. При необходимости измените текущий диск, набрав C: или D: или любой другой диск, на котором находится ваш проект.
  4. Введите cmake.. чтобы вызвать исполняемую командную строку cmake, указав относительный путь к родительскому каталогу, который содержит файл CMakeLists.txt, в качестве аргумента.

Вы должны увидеть все ожидаемые результаты в окне командной строки.

CMake рекомендует иметь сборки вне исходного кода, что означает, что, как вы можете видеть в графическом интерфейсе CMake, исходный каталог и каталог сборки не должны быть одинаковыми.
Это имеет два преимущества:

  • вы можете иметь несколько каталогов сборки, связанных с одним деревом источника с различными конфигурациями сборки (отладка, выпуск, статическая или динамическая компоновка... и т.д.),
  • файлы, созданные CMake, не рискуют случайно попасть в вашу систему управления исходным кодом.
0

Это должно быть достаточно, чтобы запустить cmake в папке, где находится этот CMakeLists.txt, например:

cmake .
  • 1
    Сборка непосредственно в исходном дереве настоятельно не рекомендуется. Вы «пачкаете» дерево исходных текстов, что может привести к путанице при смешивании сборок, обновлений исходного кода, упаковки исходного кода и тому подобного. Как правило, лучше создать отдельный каталог, сохраняя дерево исходного кода "чистым". (См. Ответ сэра Дария.)
  • 0
    Поскольку OP, казалось, только хотел получить выходные данные этих двух переменных, я предполагал, что он на самом деле не намеревался ничего строить в каталоге, где он будет выше CMakeFiles.txt, поэтому сборка вне источника будет overkill, так как каталог, вероятно, впоследствии будет удален. Хотя бы упомянул об этом.

Ещё вопросы

Сообщество Overcoder
Наверх
Меню