Tôi đang gặp sự cố bao gồm thử nghiệm theo dự án cmake. dự án của tôi được đặt ra như thế này:cmake bao gồm h tệp từ các thư mục khác
TerrainMap
/ \
PointAccumulator heightQuadGrid
\
Test
Trong TerrainMap thư mục tập tin CMakeLists.txt chỉ đơn giản là vạch ra các phiên bản cmake tên dự án và bao gồm hai thư mục phụ.
Trong heightQuadGrid các CMakeLists.txt trông như thế này:
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)
mà như tôi hiểu làm cho một thư viện gọi heightQuadGrid. Các CMakeLists.txt trong thử nghiệm trông như thế này:
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})
Và cuối cùng là tập tin cpp heightQuadGridTest.cpp này đã bao gồm:
#include <heightQuadGrid/heightQuadGrid.h>
các cmake hoạt động chính xác nhưng khi tôi đi để làm cho dự án nó nói tôi rằng nó không thể tìm thấy heightQuadGrid/heightQuadGrid.h
Làm thế nào thỏa thuận như tôi đã thấy một cách tiếp cận rất giống nhau trong một dự án làm việc khác?
Không, tôi không nghĩ vậy, với tôi điều này cho thấy tôi đang cố gắng để có được heightQuadGrid.h từ thư viện heightQuadGrid mà tôi đã liên kết một cách thích hợp. –
Sửa lỗi nếu tôi sai (Tôi không có cấu trúc thư mục trên máy tính của tôi) nhưng "liên kết thích hợp" cho trình liên kết * biết vị trí ... các thư mục bao gồm cho trình biên dịch * xem. – tmpearce
Ok Tôi nghĩ rằng tôi hiểu ý bạn là gì, nhưng tôi có cần phải đưa 2 thư mục lên hay chỉ một nơi chiều caoQuadGrid.h là? Và sau đó làm thế nào để tôi bao gồm nó trong tập tin cpp của tôi, cách tôi đã làm? –