मुझे विंडोज़ पर सेमेक के साथ प्रोटोबफ वी 2 का उपयोग करने और अपनी परियोजना सेटिंग्स के साथ बनाने का तरीका मिला। कृपया, cmake-external-packages project और protobuf-v2 CMakeLists देखें जो नौकरी करते हैं। वास्तव में, मैंने इसे लिखा क्योंकि ExternalProject_Add
गलत है (क्योंकि पीढ़ी चरण के बजाय निर्माण चरण में सामान करता है)।
यह CMakeLists.txt protobuf's github releases से प्रोटोबफ डाउनलोड करेगा, निकालें और सेमीकेक लक्ष्य को उत्सर्जित करेगा जिसे आपको target_link_libraries
के साथ संदर्भ जोड़ना चाहिए।
git-subtree, git-submodule का उपयोग करें या बस इस भंडार सामग्री को अपने भंडार उपफोल्डर में कॉपी करें।
फिर पैकेज जोड़ें जो आप add_subdiretory
के साथ उपयोग करना चाहते हैं। Protobuf के लिए, का उपयोग करें:
add_subdirectory(path/to/cmake-external-packages/protobuf-v2)
Protobuf के शामिल path/to/cmake-external-packages/include
फ़ोल्डर में कॉपी किया जायेगा। आप अपने उच्च-स्तरीय CMakeLists में अपने स्थान को अनुकूलित कर सकते हैं:
set (EXTERNAL_PACKAGES_INCLUDE_DIR ${CMAKE_CURRENT_LIST_DIR}/third-party/include
CACHE STRING "Directory for third-party include files, where include folders will be copied")
include_directories(${EXTERNAL_PACKAGES_INCLUDE_DIR})
बस अपने निष्पादन के लिए Protobuf संदर्भ:
add_executable(your_exe ${your_exe_sources})
target_link_libraries(your_exe libprotobuf libprotobuf-lite libprotoc)
आशा इस मदद करता है।
धन्यवाद, मैंने तब से पता चला है कि find_library भी CMAKE_INCLUDE_PATH, CMAKE_INCLUDE_PATH और CMAKE_LIBRARY_PATH खोजता है। –