Сережка не может найти gmock - Ubuntu 16.04 - PullRequest
0 голосов
/ 18 октября 2019

Недавно я читал учебное пособие по установке пакета и установил 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()

Я не слишком уверен, куда идти отсюда?

...