Ho problemi a includere un test in un progetto cmake. Il mio progetto è impostato come questo:cmake compresi i file h da altre directory
TerrainMap
/ \
PointAccumulator heightQuadGrid
\
Test
Nella Directory TerrainMap il file CMakeLists.txt delinea semplicemente la versione CMake il nome del progetto e comprende le due sottodirectory.
Nel heightQuadGrid il CMakeLists.txt assomiglia a questo:
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)
che a quanto ho capito rende una libreria chiamata heightQuadGrid. Il CMakeLists.txt in Test si presenta così:
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})
E infine il file cpp heightQuadGridTest.cpp ha questo includono:
#include <heightQuadGrid/heightQuadGrid.h>
Il cmake funziona correttamente, ma quando vado a rendere il progetto racconta me che non riesce a trovare heightQuadGrid/heightQuadGrid.h
Qual è l'accordo come ho visto un approccio molto simile in un altro progetto?
No io non la penso così, per me questo significa che sto cercando di ottenere heightQuadGrid.h dalla libreria heightQuadGrid che ho collegato in modo appropriato. –
Correggetemi se ho torto (non ho la vostra struttura di directory sulla mia macchina) ma "linking appropriatamente" dice al * linker * dove cercare ... le directory di inclusione dicono al * compilatore * dove cercare. – tmpearce
Ok, penso di capire cosa intendi, ma dovrei includere 2 directory o solo una in cui heightQuadGrid.h è? E poi come lo includo nel mio file cpp, come ho fatto? –