के साथ boost.system के खिलाफ कैसे लिंक करें I C++ फ़ाइल को संकलित करने के लिए एक सेमेक जेनरेट मेकफ़ाइल का उपयोग करें जो बूस्ट फाइल सिस्टम लाइब्रेरी पर निर्भर करता है।cmake
लिंक करने की प्रक्रिया मैं निम्नलिखित त्रुटि मिलती है के दौरान:
cd /Users/janusz/Documents/workspace/ImageMarker/Debug/src && /opt/local/bin/cmake -E cmake_link_script CMakeFiles/ImageMarker.dir/link.txt --verbose=1 /usr/bin/c++ -O3 -Wall -Wno-deprecated -g -verbose -Wl,-search_paths_first -headerpad_max_install_names -fPIC CMakeFiles/ImageMarker.dir/ImageMarker.cpp.o CMakeFiles/ImageMarker.dir/Image.cpp.o CMakeFiles/ImageMarker.dir/utils.cpp.o CMakeFiles/ImageMarker.dir/XMLWriter.cpp.o CMakeFiles/ImageMarker.dir/FaceRecognizer.cpp.o -o ImageMarker -L/opt/local/lib ../libTinyXml.a /opt/local/lib/libboost_filesystem-mt.dylib
कुछ Googling मुझे पता चला है कि इस त्रुटि को लगता है:
Undefined symbols: "boost::system::get_generic_category()", referenced from: __static_initialization_and_destruction_0(int, int)in FaceRecognizer.cpp.o __static_initialization_and_destruction_0(int, int)in FaceRecognizer.cpp.o __static_initialization_and_destruction_0(int, int)in FaceRecognizer.cpp.o "boost::system::get_system_category()", referenced from: __static_initialization_and_destruction_0(int, int)in FaceRecognizer.cpp.o __static_initialization_and_destruction_0(int, int)in FaceRecognizer.cpp.o ld: symbol(s) not found collect2: ld returned 1 exit status make[2]: *** [src/ImageMarker] Error 1
makefile कि इस त्रुटि को उत्पन्न करता है से कार्रवाई इस लाइन है बूस्ट फ़ाइल सिस्टम लाइब्रेरी के साथ मैक पर आम हो क्योंकि मुझे boost.system लाइब्रेरी के खिलाफ लिंक करना है या boost.system लाइब्रेरी के आधार पर मेरी प्रोजेक्ट बनाना है।
लाइब्रेरी पथ को हार्डकोड किए बिना लाइब्रेरी के खिलाफ लिंक करने के लिए मैं cmake को कैसे मजबूर करूं?
यहाँ परिणाम otool से:
otool -L /opt/local/lib/libboost_filesystem-mt.dylib
/opt/local/lib/libboost_filesystem-mt.dylib:
/opt/local/lib/libboost_filesystem-mt.dylib (compatibility version 0.0.0, current version 0.0.0)
/opt/local/lib/libboost_system-mt.dylib (compatibility version 0.0.0, current version 0.0.0)
/usr/lib/libstdc++.6.dylib (compatibility version 7.0.0, current version 7.4.0)
/usr/lib/libgcc_s.1.dylib (compatibility version 1.0.0, current version 1.0.0)
/usr/lib/libSystem.B.dylib (compatibility version 1.0.0, current version 111.0.0)
जनुज़, कृपया "otool -L /opt/local/lib/libboost_filesystem-mt.dylib" करें और हमें परिणाम दें। धन्यवाद। –