आपको प्रत्येक स्रोत उपनिर्देशिका के लिए CMakeLists.txt
की आवश्यकता है।
root
|-MainProject
| |-inc
| | '-main.h
| |-src
| | |-main.cpp
| | '-CMakeLists.txt
| '-CMakeLists.txt
|-LibProject
| |-inc
| | '-test.h
| |-src
| | |-test.cpp
| | '-CMakeLists.txt
| '-CMakeLists.txt
'-CMakeLists.txt
root/CMakeLists.txt
की सामग्री::
project(MyProject)
subdirs(MainProject LibProject)
LibProject/CMakeLists.txt
की सामग्री और MainProject/CMakeLists.txt
:
subdirs(src)
LibProject/src/CMakeLists.txt
की सामग्री:
# Notice name prefix of this variable, set by CMake according
# to value given with "project()" in the root CMakeLists.txt.
include_directories(${MyProject_SOURCE_DIR}/LibProject/inc)
add_library(LibProject test.cpp)
आपका संरचना कुछ इस तरह दिखना चाहिए
MainProject/src/CMakeLists.txt
की सामग्री:
include_directories(${MyProject_SOURCE_DIR}/MainProject/inc)
# I assume you want to use LibProject as a library in MainProject.
include_directories(${MyProject_SOURCE_DIR}/LibProject/inc)
link_directories(${MyProject_SOURCE_DIR}/LibProject/src)
add_executable(MainProject main.cpp)
target_link_libraries(MainProject LibProject)
तो कॉन्फ़िगर और साथ निर्माण:
$ cd root
$ mkdir build
$ cd build
$ cmake ..
$ make
स्रोत
2011-11-29 01:46:37
बिंदु आपके उत्तर की प्रतिलिपि बनाने के बजाय नहीं बल्कि इसे पूरा करने के लिए था। जहां तक मुझे पता है कि यह दो गायब 'CMakeLists.txt' और गायब 'link_directories()' कमांड के बिना काम नहीं करेगा। मैं आपके जवाब पर टिप्पणी करने का इरादा रखता हूं, लेकिन मेरी प्रतिष्ठा ऐसा करने के लिए बहुत कम है। तो मुझे लगता है कि दूसरा जवाब पोस्ट करना सबसे आत्मनिर्भर तरीका होगा। आपको अपमानित करने का मतलब नहीं था। –
इसे लिंक_डायरेक्टरी के बिना काम करना चाहिए क्योंकि यह उसी प्रोजेक्ट द्वारा बनाई गई लाइब्रेरी है। पथ की समस्या के लिए आप सही हैं, मैं इसे सही कर दूंगा। – Beginner
आह ठीक है .. धन्यवाद – bitgregor