Я использую GCC 4.8.4, GNU Make 3.81 и CMake 2.8.12.2 на своей машине с Ubuntu 14.04, пытаясь скомпилировать небольшой проект, который зависит от gtest и gmock. Вы можете просмотреть полный исходный код этого проекта вместе с моими файлами CMake здесь< /а>. Я выполняю обычные шаги mkdir build && cd build && cmake .. && make
, но получаю эту ошибку после загрузки, извлечения и настройки зависимости gmock 1.7.0:
CMake Error at CMakeLists.txt:51 (add_subdirectory):
add_subdirectory given source "../gtest" which is not an existing
directory.
CMake Error at CMakeLists.txt:56 (config_compiler_and_linker):
Unknown CMake command "config_compiler_and_linker".
Чтобы было ясно, это ошибки, обнаруженные при выполнении команд add_subdirectory
и config_compiler_and_linker
в gmock CMakeLists.txt при попытке сослаться на зависимость gtest. Я уже поднимал эту проблему в аккаунте Google github. чтобы узнать, могут ли мне помочь какие-либо участники.
Вот еще один пример того же сбоя сборки, не знаю, как владельцы этого проекта решили свою проблему: https://travis-ci.org/open-eid/esteid-pkcs11/builds/39580725
gtest
в исходном каталоге gmock или в верхнем каталоге. Ошибка означает, что вы не разместили gtest должным образом. - person Tsyvarev   schedule 26.03.2017gtest
в моих зависимостях (см. github. com/natemurthy/misc/blob/master/cpp-stuff/containers/). Как правильно его разместить? - person nmurthy   schedule 27.03.2017googlemock/CMakeLists.txt
, у вас должно быть либоgtest/CMakeLists.txt
, либоgooglemock/gtest/CMakeLists.txt
. - person Tsyvarev   schedule 27.03.2017build/test
после запускаcmake
:build/test/gtest
иbuild/test/gmock
- person nmurthy   schedule 28.03.2017CMakeLists.txt
, у вас естьbuild/test/*gtest*/src/*gtest*/CMakeLists.txt
иbuild/test/*gmock*/src/*gmock*/CMakeLists.txt
, что отличается от ожиданий gmock. Обратите внимание, что для ExternalProject_Add() PREFIX< /i> не совпадает с исходным каталогом. Вы можете использовать один и тот же PREFIX как для gtest, так и для gmock. Также не забывайте о зависимости между этими целями. - person Tsyvarev   schedule 28.03.2017PREFIX ${CMAKE_CURRENT_BINARY_DIR}/gtest
иPREFIX ${CMAKE_CURRENT_BINARY_DIR}/gmock
в моих вызовахExternalProject_Add()
, чтобы у меня была ожидаемая структура каталогов сборки? - person nmurthy   schedule 28.03.2017PREFIX ${CMAKE_CURRENT_BINARY_DIR}/3dparty
как для gmock, так и для gtest. - person Tsyvarev   schedule 28.03.2017