2012-04-02 15 views
5

मुझे एक सेमेक परियोजना के तहत एक परीक्षण सहित परेशानी हो रही है। मेरे परियोजना इस तरह बाहर सेट है:cmake अन्य निर्देशिकाओं से एच फाइलों सहित

         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}) 

और अंत में सीपीपी फ़ाइल heightQuadGridTest.cpp इस में शामिल किया गया है:

#include <heightQuadGrid/heightQuadGrid.h> 

cmake सही ढंग से काम करता है, लेकिन यह बताता है कि जब मैं परियोजना बनाने के लिए जाना मुझे लगता है कि यह ऊंचाई नहीं मिल सकता है QuadGrid/heightQuadGrid.h

क्या सौदा मैंने एक और कामकाजी परियोजना में एक समान दृष्टिकोण देखा है?

उत्तर

3
#include <heightQuadGrid/heightQuadGrid.h> 

इस वाक्य रचना इंगित करता है कि में से एक "शामिल निर्देशिका" परियोजना के लिए heightQuadGrid dir ऊपर निर्देशिका होना चाहिए।

include_directories(../../) 
+0

नहीं, मैं ऐसा नहीं सोचता, मेरे लिए यह इंगित करता है मैं पाने के लिए कोशिश कर रहा हूँ: heightQuadTreeTest निष्पादन के लिए cmakelists.txt फ़ाइल में, आप दो निर्देशिकाओं ऊपर जाना है, और उस को जोड़ने के लिए एक शामिल निर्देशिका के रूप में करने की जरूरत है पुस्तकालय ऊंचाई से heightQuadGrid.h। क्वाडग्रिड जिसे मैंने उचित रूप से लिंक किया है। –

+1

अगर मैं गलत हूं तो मुझे सही करें (मेरे पास मेरी मशीन पर आपकी निर्देशिका संरचना नहीं है) लेकिन "उचित रूप से लिंक करना" कहता है * लिंकर * कहां देखना है ... निर्देशिकाएं शामिल हैं * कंपाइलर * कहां देखना है। – tmpearce

+0

ठीक है मुझे लगता है कि मैं समझता हूं कि आपका क्या मतलब है, लेकिन क्या मुझे 2 निर्देशिकाएं शामिल करने की आवश्यकता होगी या केवल ऊंचाई पर QuadGrid.h है? और फिर मैं इसे अपनी सीपीपी फ़ाइल में कैसे शामिल करूं, जिस तरह से मैंने किया है? –

संबंधित मुद्दे