cmake 프로젝트에서 테스트를 포함하는 데 문제가 있습니다. 내 프로젝트는 다음과 같이 규정 된 경우 : TerrainMap 디렉토리에서cmake 다른 디렉토리의 h 파일을 포함합니다.
TerrainMap
/ \
PointAccumulator heightQuadGrid
\
Test
은 CMakeLists.txt 파일은 단순히 cmake 버전 프로젝트 이름을 간략하게 설명하고, 두 개의 하위 디렉토리가 포함됩니다.
는 heightQuadGrid에서 CMakeLists.txt은 다음과 같습니다 : 나는 이해가 heightQuadGrid라는 라이브러리를 만드는
cmake_minimum_required(VERSION 2.8)
find_package(PCL 1.2 REQUIRED)
find_package(OpenCV REQUIRED)
include_directories(${PCL_INCLUDE_DIRS})
link_directories(${PCL_LIBRARY_DIRS})
add_definitions(${PCL_DEFINITIONS})
add_library(heightQuadGrid heightQuadGrid.cpp)
add_subdirectory(Test)
합니다. 시험의 CMakeLists.txt은 다음과 같습니다
FIND_PACKAGE(PCL 1.2 REQUIRED)
FIND_PACKAGE(OpenCV REQUIRED)
FIND_PACKAGE(Boost COMPONENTS unit_test_framework REQUIRED)
include_directories(${PCL_INCLUDE_DIRS})
link_directories(${PCL_LIBRARY_DIRS})
add_definitions(${PCL_DEFINITIONS})
link_libraries(heightQuadGrid)
add_executable(heightQuadTreeTest heightQuadGridTest.cpp)
target_link_libraries (heightQuadTreeTest heightQuadGrid ${PCL_LIBRARIES} ${OpenCV_LIBS} ${Boost_UNIT_TEST_FRAMEWORK_LIBRARY})
그리고 마지막으로 CPP 파일을 heightQuadGridTest.cpp이 포함했습니다
이#include <heightQuadGrid/heightQuadGrid.h>
cmake가 제대로 작동하지만 난 프로젝트를 만들어 갈 때 알려줍니다 그게 찾을 수 없다고 생각합니다 .QuadGrid/heightQuadGrid.h
다른 작업 프로젝트에서 비슷한 접근법을 보았습니다.
아니, 난 그렇게 생각하지 않아요 다음
heightQuadTreeTest
실행 파일의 cmakelists.txt 파일에서 두 디렉토리를 이동하고 include 디렉토리로 저를 추가 할 필요가 없습니다 라이브러리에있는 heightQuadGrid에서 적절하게 링크 된 heightQuadGrid.h. –내가 틀렸다면 (필자의 컴퓨터에 디렉토리 구조를 가지고 있지 않다.) "링크를 적절하게 연결한다"는 지시는 * 링커 *가 어디에 있는지를 알려주는 것이다. – tmpearce
좋아, 내가 무슨 뜻인지 이해하지만, 2 디렉토리를 포함하거나 heightQuadGrid.h가있는 위치에 하나만 포함시켜야합니까? 그리고 어떻게해야합니까? 내 cpp 파일에 그것을 어떻게 포함합니까? –