5
我遇到麻煩,包括cmake項目下的測試。我的項目設置了這樣的:cmake包括來自其他目錄的h文件
TerrainMap
/ \
PointAccumulator heightQuadGrid
\
Test
在TerrainMap目錄中的CMakeLists.txt文件簡單地概述了cmake的版本,項目名稱,包括兩個子目錄。
在heightQuadGrid中的CMakeLists.txt看起來是這樣的:
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)
其按照我的理解,使一個名爲heightQuadGrid庫。該在的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的正常工作,但是當我去使項目它告訴我無法找到heightQuadGrid/heightQuadGrid.h
什麼是我看到的另一個工作項目中非常類似的方法?
不,我不這麼認爲,我這表示我試圖讓來自圖庫heightQuadGrid的heightQuadGrid.h,我已正確鏈接。 – 2012-04-03 01:59:33
糾正我,如果我錯了(我沒有你的目錄結構在我的機器上),但「適當鏈接」告訴*鏈接器*在哪裏看... include目錄告訴*編譯器*在哪裏看。 – tmpearce 2012-04-03 02:30:09
好吧我想我明白你的意思,但我需要包括2個目錄或只有一個到heightQuadGrid.h是哪裏? 然後,我如何將它包含在我的cpp文件中,這樣我就完成了? – 2012-04-03 04:01:25