मैं वर्तमान में अपने प्रोजेक्ट (विंडोज़ पर) के लिए सीएमके चलाने की कोशिश कर रहा हूं। मैं एक कस्टम स्थान का उपयोग करना चाहता हूं जहां सभी पुस्तकालय स्थापित हैं। उस पथ मैं ऐसा करने की कोशिश की के बारे में सूचित करने के लिए CMake:सेमीकेक - find_library - कस्टम लाइब्रेरी स्थान
set(CMAKE_PREFIX_PATH D:/develop/cmake/libs)
लेकिन जब मैं
find_library(CURL_LIBRARY NAMES curl curllib libcurl_imp curllib_static)
साथ पुस्तकालय खोजने की कोशिश CMake यह नहीं मिल रहा। जब मैं
set(CMAKE_PREFIX_PATH D:/develop/cmake/libs/curl)
करने के लिए अपने उपसर्ग पथ सेट ... पुस्तकालय स्थित है।
तो मेरे सवाल है: मैं कैसे कॉन्फ़िगर कर सकते हैं CMake ठीक से एक कस्टम स्थान जो कि तरह लग रहा है पर एक निर्देशिका structore के साथ काम करने के लिए:
D:/develop/cmake/libs/
-> libA
-> include
-> lib
-> libB
-> include
-> lib
-> ...
-> include
-> lib
"शामिल हैं" में सार्वजनिक हेडर झूठ और "lib में "संकलित पुस्तकालय हैं।
आशा कोई मेरी मदद कर सकते - अग्रिम धन्यवाद
संपादित करें: मेरे लिए वर्तमान समाधान नहीं है, यह करने के लिए इससे पहले कि मैं पुस्तकालयों के लिए खोज:
set(CUSTOM_LIBRARY_PATH D:/develop/cmake/libs)
file(GLOB sub-dir ${CUSTOM_LIBRARY_PATH}/*)
foreach(dir ${sub-dir})
if(IS_DIRECTORY ${dir})
set(CMAKE_PREFIX_PATH ${CMAKE_PREFIX_PATH};${dir})
endif()
endforeach()
लेकिन उस तरह के लिए डिफ़ॉल्ट मॉड्यूल बूस्ट इसे तब तक नहीं ढूंढ पाएगा क्योंकि बूस्ट की निर्देशिका संरचना कुछ अलग है।
boost -> include -> boost-1_50 -> *.hpp
जब मैं सामग्री को "बढ़ावा देने-1_50" "शामिल हैं" करने के लिए पुस्तकालय पाया जा सकता है लेकिन यह है कि जिस तरह से यह एक से अधिक संस्करण सही संभाल पाना संभव नहीं है?
सबसे पहले, तुम क्यों CMakeLists.txt अंदर CMAKE_PREFIX_PATH सेट कर रहे हैं: आप के लिए
अपने मामले आप अलग अलग पथों CMAKE_PREFIX_PATH को जोड़ने की जरूरत है में देख रहे हैं? यदि कोई अन्य व्यक्ति आपकी परियोजना को संकलित करने का प्रयास करेगा तो यह काम नहीं करेगा। – arrowd
यह केवल परीक्षण के लिए था - अगर यह काम करेगा तो मैं पर्यावरण परिवर्तनीय – Daniel