के साथ एक प्रोजेक्ट में एकाधिक एक्जिक्यूटिव बनाएं, मैं एक ऐसे प्रोजेक्ट पर काम कर रहा हूं जिसमें 3 सर्वर एक्जिक्यूटिव और साझा कोड के लिए एक लाइब्रेरी शामिल है। मैं इसे क्रॉस-प्लेटफार्म बनना चाहता हूं, इसलिए मैं निर्माण प्रक्रिया को संभालने के लिए सीएमके का उपयोग कर रहा हूं (चूंकि एक्सकोड एक दर्द है)। मुझे सीएमकेलिस्ट स्थापित करने में परेशानी हो रही है ताकि जब मैं निष्पादन योग्य बना रहा हूं तो मैं उसी स्तर पर निर्देशिका से लाइब्रेरी को शामिल कर सकता हूं।सीएमके: स्टेटिक लाइब्रेरी
यहाँ निर्देशिका संरचना (और CMake फ़ाइलें) है:
tethealla2.0/
CMakeLists.txt
libtethealla/
CMakeLists.txt
encryption/
utils/
patch_server/
CMakeLists.txt
login_server/
CMakeLists.txt
ship_server/
CMakeLists.txt
मेरे उच्च-स्तरीय CMake (tethealla2.0/CMakeLists.txt, केवल उप परियोजना है कि संकलन चाहिए शामिल है):
project(tethealla CXX)
cmake_minimum_required(VERSION 2.6)
add_subdirectory(libtethealla)
add_subdirectory(patch_server)
tethealla2.0/libtethealla/CMakeLists.txt है, जो एक स्थिर पुस्तकालय उत्पन्न करता है:
project(Libtethealla C)
cmake_minimum_required(VERSION 2.6)
include_directories(encryption)
set(ENC_DR encryption/)
set(ENCRYPTION_SOURCES
${ENC_DR}/psobb-crypt.c
${ENC_DR}/psogc-crypt.c
${ENC_DR}/psobb-crypt.c
${ENC_DR}/encryption.c
)
add_library(tethealla STATIC ${ENCRYPTION_SOURCES})
टीईटी healla2.0/patch_server/CMakeLists.txt अब तक:
project(patch_server CXX)
cmake_minimum_required(VERSION 2.6)
add_executable(server main.cc)
target_link_libraries(server tethealla)
तो यह अधिक समझ में आता है अगर मैं इसे tethealla2.0 के बाद से शीर्ष स्तर से निर्माण/CMakeLists.txt उपनिर्देशिका में से प्रत्येक और से लक्ष्य प्राप्त कर लेंगे पैच_सेवर में से एक को टेथेहेला लाइब्रेरी तक पहुंच होगी। हालांकि, मैं चाहता हूं कि एक्सकोड परियोजनाओं को उत्पन्न करने के लिए इन उपनिर्देशिकाओं के भीतर से निर्माण करने में सक्षम होना चाहिए ताकि मैं उन्हें व्यक्तिगत रूप से/पुनः संयोजित कर सकूं। ऐसा करने के लिए मुझे libtethealla /a निर्देशिका (जहां सीएमके आउटपुट) को patch_server से libtethealla.a लाइब्रेरी तक पहुंचने के लिए प्राप्त करने में सक्षम होना चाहिए। क्या यह संभव है?
एक और नोट पर, शीर्ष स्तर की निर्देशिका से निर्माण में भी पैच_सेवर में मेरे स्रोत में एन्क्रिप्शन में लाइब्रेरी के लिए हेडर फ़ाइल "एन्क्रिप्शन.h" शामिल नहीं हो सकती है। जो ठीक लग रहा है प्रतीत होता है। उस पर किसी भी विचार की भी सराहना की जाती है!