Недавно я читал учебное пособие по установке пакета и установил googletest из исходного кода, даже не подозревая, что у меня уже был пакет локально.
Сейчас я пытаюсь выполнить чистую сборку на ранее собранном пакете ROS, однако теперь мне не удается собрать все, что содержит gmock.
Я попытался удалить gmock и googletest из своей системы, ноэто все еще терпит неудачу.
Я добавил эти строки в свой файл cmake, чтобы помочь отладке:
message(**********************************)
message(${GTEST_LIBRARIES})
message(${GMOCK_LIBRARIES})
message(**********************************)
И результаты, которые я получаю, следующие:
**********************************
/usr/lib/libgtest.a
CMake Error at magic_carpet_simulation/magic_carpet_simulation/CMakeLists.txt:36 (message):
message called with incorrect number of arguments
**********************************
Thisпоказывает, что я могу найти gtest, но не gmock. Я проверил / usr / lib и обнаружил, что определенно установлен пакет gmock:
-rw-r--r-- 1 root root 2451054 Oct 18 09:43 libgmock.a
-rw-r--r-- 1 root root 2455202 Oct 18 09:43 libgmock_main.a
Вот мой файл cmake, слегка отредактированный для обеспечения конфиденциальности, но структура та же:
cmake_minimum_required(VERSION 2.8.3)
project(example)
find_package(cmake_utils 0.3.0 REQUIRED)
include(TopLevel)
find_package(catkin REQUIRED COMPONENTS
roscpp
subscriber_helpers
)
catkin_package(
INCLUDE_DIRS
include
test/include
LIBRARIES
lookup_table_1d
CATKIN_DEPENDS
nav_msgs
roscpp
subscriber_helpers
)
message(**********************************)
message(${GTEST_LIBRARIES})
message(${GMOCK_LIBRARIES})
message(**********************************)
add_library(lookup_table_1d
src/lookup_table_1d.cpp)
target_include_directories(lookup_table_1d PRIVATE
include
${catkin_INCLUDE_DIRS})
target_link_libraries(lookup_table_1d ${catkin_LIBRARIES})
# Library of utilities required by all integration tests
add_library(simulation_integration_test_common
test/integration/example.cpp)
target_include_directories(simulation_integration_test_common PRIVATE
test/include
${catkin_INCLUDE_DIRS}
${GMOCK_INCLUDE_DIRS})
target_link_libraries(simulation_integration_test_common ${catkin_LIBRARIES})
install(DIRECTORY launch/
DESTINATION ${CATKIN_PACKAGE_SHARE_DESTINATION}/launch
FILES_MATCHING PATTERN "*.launch" PATTERN "*.yaml")
install(DIRECTORY include/${PROJECT_NAME}/
DESTINATION ${CATKIN_PACKAGE_INCLUDE_DESTINATION}
FILES_MATCHING PATTERN "*.h")
install(
TARGETS
lookup_table_1d
PERMISSIONS
OWNER_READ OWNER_WRITE OWNER_EXECUTE
GROUP_READ GROUP_WRITE GROUP_EXECUTE
WORLD_READ WORLD_EXECUTE
ARCHIVE DESTINATION ${CATKIN_PACKAGE_LIB_DESTINATION}
LIBRARY DESTINATION ${CATKIN_PACKAGE_LIB_DESTINATION}
RUNTIME DESTINATION ${CATKIN_PACKAGE_BIN_DESTINATION})
if (CATKIN_ENABLE_TESTING AND BUILD_TESTS)
## Unit Tests...
## Pipeline tests...
endif()
Я не слишком уверен, куда идти отсюда?