2012-04-02 15 views
5

cmakeプロジェクトの下でテストを含むことに問題があります。私のプロジェクトは次のように定めている:TerrainMapディレクトリにcmake他のディレクトリのh個のファイルを含む

         TerrainMap 
             / \ 
         PointAccumulator  heightQuadGrid 
               \ 
               Test 

はCMakeLists.txtファイルは、単純にcmakeのバージョンプロジェクト名を概説し、二つのサブディレクトリが含まれています。

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と呼ばれるライブラリを作る理解している:

heightQuadGridでCMakeLists.txtは次のようになります。試験における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

私は別の作業プロジェクトで非常に似たアプローチを見てきましたか?

答えて

3
#include <heightQuadGrid/heightQuadGrid.h> 

この構文は、プロジェクトのheightQuadGridディレクトリ上のディレクトリでなければなりません「ディレクトリが含ま」の1つを示しています。これは私が取得しようとしていますを示している私に、

include_directories(../../) 
+0

んが、私はそうは思わない:heightQuadTreeTest実行のためのcmakelists.txtファイルでは、2つのディレクトリを上がると、includeディレクトリとしてそれを追加する必要がありません私が適切にリンクしているライブラリのheightQuadGridからheightQuadGrid.hを取得します。 –

+1

私が間違っている(私のマシン上にあなたのディレクトリ構造を持っていない)が正しいかどうかを訂正しますが、 "適切にリンクする"は*リンカー*にどこに見えるかを教えてくれます。 – tmpearce

+0

私はあなたが何を意味しているか理解していると思いますが、2つのディレクトリを含めるか、heightQuadGrid.hのある場所に1つだけ入れる必要がありますか? そして、私がやったやり方で、それを私のcppファイルにどのように入れるのですか? –

関連する問題