2014-06-17 15 views
6

मैं मैक ओएस एक्स मावेरिक्स पर इस पुस्तकालय को संकलित करने का प्रयास कर रहा हूँ 10.9.3 64-बिट: http://www.openfec.org/downloads.html"वास्तुकला x86_64 के लिए अपरिभाषित प्रतीकों:"

मैं बिल्कुल README पीछा किया, और यह त्रुटि आई:

Linking C shared library ../../bin/Release/libopenfec.dylib

Undefined symbols for architecture x86_64: 
     "_of_add_from_multiple_symbols", referenced from: 
     _of_linear_binary_code_backward_substitution in of_ml_tool.c.o 
     "_of_add_to_symbol", referenced from: 
     _of_linear_binary_code_decode_with_new_symbol in of_it_decoding.c.o 
     _of_linear_binary_code_simplify_linear_system in of_ml_decoding.c.o 
     _of_linear_binary_code_col_forward_elimination_pivot_reordering in of_ml_tool.c.o 
     _of_linear_binary_code_apply_gauss_pivoting in of_ml_tool_2.c.o 
     _of_linear_binary_code_inject_symbol_in_triangular_system in of_ml_tool_2.c.o 
     _of_linear_binary_code_solve_triangular_system in of_ml_tool_2.c.o 
     _of_linear_binary_code_invert_dense_system in of_ml_tool_2.c.o 
     ... 
     "_of_calloc", referenced from...: 
     ... 

ld: symbol(s) not found for architecture x86_64
clang: error: linker command failed with exit code 1 (use -v to see invocation)
make[2]: * [../bin/Release/libopenfec.dylib] Error 1
make[1]: *
[src/CMakeFiles/openfec.dir/all] Error 2
make: *** [all] Error 2

मैंने ओपनएफईसी के डिस्ट्रो के लिए रीडमे का पालन किया (http://www.openfec.org/downloads.html पर पाया गया)। बनाने का प्रयास करते समय, यह त्रुटि उत्पन्न होती है। मुझे नहीं पता कि समस्या क्या है।
(1.):: mkdir
(2.) का निर्माण: सीडी
(3.) का निर्माण:

यह मैं वितरण untarring के बाद क्या किया है cmake .. -DDEBUG: STRING = बंद
(4.):

कोई विचार?

संपादित करें: 64-बिट का उपयोग करने के लिए cmake को मजबूर करने का प्रयास किया गया, अभी भी काम नहीं किया है।
(इसे सिर्फ किक्स के लिए 32-बिट में मजबूर करने का प्रयास किया, यह भी काम नहीं किया)

+0

"आर्किटेक्चर x86_64 के लिए अनिर्धारित प्रतीकों" का अर्थ है कि पुस्तकालय किसी अन्य वास्तुकला के लिए बनाया गया है। लाइब्रेरी लक्ष्य आर्किटेक्चर 32 बिट (यानी i386) हो सकता है। 64 बिट आर्किटेक्चर (x86_64) के लिए इस लाइब्रेरी को कैसे बनाया जाए, इसका पता लगाएं। – Raviprakash

+0

क्या आप अभी [इस सवाल] (http://stackoverflow.com/questions/5334095/cmake-multiarchitecture-compilation) को cmake का उपयोग कर 64 बिट आर्किटेक्चर में संकलित करने पर देख सकते हैं। – Raviprakash

+0

मैंने किया, और मैंने इसका प्रयास किया। दुर्भाग्य से इस मुद्दे को ठीक नहीं किया। – h4x0rjax

उत्तर

2

FYI, अगर यह हल नहीं किया गया था। जांचें कि आप अपने पुस्तकालयों से ठीक से लिंक कर रहे हैं।

FIND_LIBRARY(LIB_NAME_LIB lib) 
TARGET_LINK_LIBRARIES(my_executable ${LIB_NAME_LIB}) 

आपके CMakeLists.txt फ़ाइल में।

+0

मैं सीएमके के लिए नया हूं, इसलिए मुझे यहां थोड़ी मदद चाहिए। मुझे बढ़ावा देने के लिए आर्किटेक्चर x86_64 के लिए अपरिभाषित प्रतीक मिल रहे हैं। मैं क्लियन का उपयोग कर रहा हूं, जो सीमेक का उपयोग करता है। find_package (OpenCV आवश्यक) find_package (बूस्ट 1.55.0 आवश्यक घटक फाइल सिस्टम धागा chrono प्रणाली परमाणु program_options) include_directories ($ {Boost_INCLUDE_DIRS}) add_executable (: यह क्या मैं अपने CMakeLists.txt फ़ाइल के तल पर है Oneprint $ {SOURCE_FILES}) target_link_libraries (Oneprint $ {OpenCV_LIBS}) target_link_libraries (Oneprint $ {Boost_LIBRARIES}) मैं अपने ऊपर सुझाव (वास्तविक नाम या उपनाम) कैसे प्रयोग करेंगे? – Patricia

संबंधित मुद्दे