आप Caffe में कस्टम फ़ाइलों का निर्माण करना चाहते हैं, तो वहाँ दो तरीके हैं
आसान तरीका
- आवश्यक परिवर्तन करें और फ़ाइल (आपके मामले में - classification.cpp) रखने insid ई ई कैफे रूट निर्देशिका में उदाहरण फ़ोल्डर में एक निर्देशिका (परीक्षण कहें)।
- रन
make
। यह स्वचालित रूप से आवश्यक cxxflags और ldflags जोड़ देगा और आपके कोड को संकलित करेगा और निष्पादन योग्य को बिल्ड/उदाहरण/परीक्षण फ़ोल्डर में रखेगा। यह भी झंडा CPU_ONLY सेट कर दिया जाता
हार्ड रास्ता
- भागो सुंदर प्रिंट विकल्प के बिना बनाना (के रूप में Makefile.config में उल्लेख किया है) यह सुनिश्चित (Makefile अंदर उल्लेख किया .config)। आप उदाहरण और टूल बनाने के लिए उपयोग किए गए संकलन और लिंक विकल्प देख पाएंगे। आप कॉपी और इन विकल्पों में पेस्ट कर सकते हैं (और अगर इस्तेमाल किया संबंधित पथ के लिए आवश्यक परिवर्तन) अपनी फ़ाइल
आशा संकलित करने के लिए इस
में मदद करता है संपादित सेशन के रूप में एक आसान तरीका का अनुरोध किया है, यह हो सकता है
यह एक बहुत ही न्यूनतम उदाहरण है और मैं ओपी को पूर्ण ऑनलाइन दस्तावेज़ीकरण और सेमेक उपयोग के उदाहरण को संदर्भित करने के लिए प्रोत्साहित करता हूं।
- आवश्यकताओं
- Caffe जरूरत cmake साथ निर्मित किया जाना - अपेक्षाकृत आसान के रूप में वर्तमान मास्टर शाखा CMakeLists और सब कुछ परिभाषित है।अपने विकल्पों को
स्थापित करने के लिए अब, मैं यह सोचते हैं रहा हूँ आप एक परियोजना संरचना इस प्रकार है CMake-जीयूआई या ccmake का प्रयोग करें।
-project
- src
- class1.cpp
- CMakeLists.txt (to be added)
- include
- class1.hpp
- main.cpp
- CMakeLists.txt (to be added)
CMakeLists.txt (एसआरसी) को रोकने के लिए निम्नलिखित लाइनों (न्यूनतम पर ) की जरूरत है,
cmake_minimum_required(VERSION 2.8)
find_package(OpenCV REQUIRED) # Optional in case of dependency on opencv
add_library(c1 class1.cpp)
नोट: मामले Class1 में अन्य बाहरी पुस्तकालयों पर, के लिए पथ निर्भर करता है शीर्षलेखों को include_directories
का उपयोग करके शामिल किया जाना चाहिए।
CMakeLists.txt (सबसे बाहरी) न्यूनतम
cmake_minimum_required(VERSION 2.8)
PROJECT(MyProject)
find_package(OpenCV REQUIRED)
find_package(Caffe REQUIRED)
include_directories("${PROJECT_SOURCE_DIR}/include")
add_subdirectory(src)
include_directories("$Caffe_INCLUDE_DIRS}")
add_executable(MyProject main.cpp)
target_link_libraries(MyProject ${OpenCV_LIBS} c1 ${Caffe_LIBRARIES})
पर निम्न अब, परियोजना निर्देशिका के अंदर से निम्न कमांड build
फ़ोल्डर के अंदर निष्पादन MyProject
पैदा करेगा शामिल करने के लिए की जरूरत है।
mkdir build
cd build
cmake ..
make
फिर आप के साथ ./MyProject (arguments)
संपादित 2
CMake साथ Caffe निर्माण की आवश्यकता संतोषजनक अपने कार्यक्रम चला सकते हैं यह काम करने के लिए बहुत महत्वपूर्ण है। आपको सीएमके का उपयोग करके मेकफ़ाइल को कॉन्फ़िगर और उत्पन्न करने की आवश्यकता है। cmake-gui
या ccmake
का उपयोग इस उद्देश्य के लिए, ताकि आप CPU_ONLY की तरह अपने विकल्पों, आदि
आप एक निर्माण निर्देशिका Caffe के अंदर बना सकते हैं और एक बुनियादी सेटअप
mkdir build
cd build
cmake ..
make -jX #X is the number of threads your CPU can handle
के लिए निम्नलिखित को निष्पादित करें अब, चाहिए सेट कर सकते हैं। आपके $ HOME फ़ोल्डर में cmake निर्देशिका में निम्नलिखित /home/user/.cmake/packages/Caffe/<random_string>
फ़ाइल शामिल है। यह फ़ाइल कैफी के इंस्टॉल स्थान को इंगित करती है (जो हमारी बिल्ड निर्देशिका है)
अब, find_package कमांड को आपकी अन्य परियोजनाओं के लिए त्रुटियों के बिना चलाना चाहिए। और चूंकि आप CMake उपयोग कर रहे हैं आप Caffe फ़ोल्डर के बाहर अपनी परियोजना फ़ोल्डर रख सकते है (और यह यह बाहर रखने के लिए Caffe के मेकअप प्रक्रिया के रूप में आपकी फ़ाइलों का निर्माण करने की कोशिश करेंगे बेहतर है, लेकिन यह असफल हो जायेगी)
नोट: यदि त्रुटि बनी रहती है, तो आप cmake कॉन्फ़िगरेशन के दौरान मैन्युअल रूप से Caffe_DIR सेट कर सकते हैं।
सटीक आदेश आप संकलन के लिए प्रयोग कर रहे हैं, और आप हो रही है त्रुटि संदेश पोस्ट करें स्थापित करने के लिए। – Shai
धन्यवाद शाई, अभी प्रश्न –