Как установить gmock на Ubuntu?

Вопрос или проблема

Я уже некоторое время пытаюсь установить gmock на Ubuntu и поэтому обращаюсь к вам, так как уверен, что это не должно быть сложно, и я просто упускаю что-то важное.

Мне удалось ранее установить gtest, но, к сожалению, я не помню, как именно, но gtest работает на машине, на которую я хочу установить gmock.

Я пробовал установить через:

sudo apt-get install -y googletest

и

sudo apt-get install -y google-mock

Это, похоже, сработало, и я могу компилировать тесты, которые включают <gmock/gmock.h>, но когда я пытаюсь слинковать, я получаю ошибку:

/usr/bin/ld: cannot find -lgmock

Я пробовал установить, как предложено здесь, но на этапе, который говорит sudo cmake .., я получаю предупреждение:

CMake Warning at CMakeLists.txt:54 (project):
  VERSION keyword not followed by a value or was followed by a value that
  expanded to nothing.

И похоже, что файл make не создается.

Я пробовал скачать исходные коды и следовать инструкциям в Readme.md в папке googletest, но когда я пытаюсь запустить файл cmake в папке, я получаю ошибку:

CMake Error at CMakeLists.txt:129 (set_target_properties):
  set_target_properties called with incorrect number of arguments.

На этом этапе я немного запутался. Досадно, что мне удалось установить как googletest, так и googlemock на машине под управлением macOS несколько лет назад.

Мой вопрос в основном в том, есть ли у кого-то обновленные инструкции по лучшим практикам установки gtest и gmock на Ubuntu? Поскольку я использую make, а не cmake для своего проекта, я думаю, что мне больше интересно установить gtest и gmock отдельно, а не как часть уже существующего проекта cmake. Я должен добавить, что я довольно новичок как в Ubuntu, так и в установках из исходника.

Ответ или решение

Установка Google Mock (gmock) на Ubuntu может вызывать трудности, особенно если у вас нет достаточного опыта работы с системой сборки CMake. Также стоит отметить, что Google Mock часто устанавливается в связке с Google Test (gtest), и их установка может потребовать некоторых дополнительных шагов. В этом руководстве я предлагаю несколько подходов, чтобы помочь вам успешно установить gmock и gtest на вашу Ubuntu-систему.

1. Установка с помощью apt

Хотя вы упомянули, что уже пробовали установить gmock через apt, необходимо убедиться, что вы делаете это правильно. Добавьте необходимые репозитории и выполните следующие команды:

sudo apt update
sudo apt install -y libgtest-dev

Однако, команда выше установит только Google Test, а не Google Mock. На данный момент в стандартных репозиториях Ubuntu нет готового пакета для gmock, поэтому вам необходимо будет его собрать из исходников.

2. Установка из исходников

Чтобы установить gmock из исходников, выполните следующие шаги:

  1. Клонирование репозитория:

    Убедитесь, что у вас установлен git. Если нет, установите его:

    sudo apt install -y git

    Затем клонируйте репозиторий:

    git clone https://github.com/google/googletest.git
    cd googletest
  2. Создание папки для сборки:

    mkdir build
    cd build
  3. Запуск CMake:

    Здесь вы можете увидеть, что возникают проблемы с настройкой. Убедитесь, что у вас установлен CMake:

    sudo apt install -y cmake

    Затем выполните следующую команду:

    cmake ..

    Если вы получаете предупреждения о VERSION, это может быть связано с неверной версией CMake. Рекомендуется использовать последнюю стабильную версию.

  4. Компиляция:

    Если настройка CMake прошла успешно, выполните:

    make
  5. Установка:

    Установите библиотеки:

    sudo make install

3. Проверка установки

После завершения установки, проверьте, что gmock и gtest установлены правильно. Используйте следующую команду для проверки наличия файлов:

ls /usr/local/lib | grep gmock
ls /usr/local/lib | grep gtest

4. Компиляция проекта с gmock и gtest

Когда gmock и gtest установлены, вы можете использовать их в своем проекте. Убедитесь, что ваш компилятор знает, где находят библиотеки gmock и gtest при компиляции. Например:

g++ -o my_tests my_tests.cpp -lgtest -lgmock -pthread

5. Устранение ошибок

Если при линковке вы продолжаете получать ошибки, такие как cannot find -lgmock, убедитесь, что пути библиотек настроены в /etc/ld.so.conf.d/ или выполните:

sudo ldconfig

Это обновит кэш linker и поможет ему найти новые установленные библиотеки.

Заключение

Установка gmock и gtest может быть небольшой головной болью, но следуя этим шагам, вы должны справиться с задачей. Если у вас возникли дополнительные ошибки, попробуйте внимательно изучить их текст и убедитесь, что все зависимости установлены. Если возникают трудности, всегда можно обратиться к документации или сообществу, чтобы получить помощь.

Оцените материал
Добавить комментарий

Капча загружается...