2014-06-17 1 views
6

내가 Mac OS X 용 매버릭스에이 라이브러리를 컴파일을 시도하고 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

간단히 말해서 OpenFEC의 배포판에 대한 README (http://www.openfec.org/downloads.html에서 찾을 수 있습니다.)를 따랐습니다. 시도 할 때이 오류가 발생합니다. 문제가 무엇인지 전혀 알지 못합니다.
(1) : MKDIR
(2) 구축 : CD가
(3) 구축 :

내가 분포의 압축을 해제 한 후 무슨 짓을 cmake .. -DDEBUG : STRING = OFF
(4.) : 확인

아이디어가 있으십니까?

편집 : cmake가 강제로 64 비트를 사용하려고 시도했지만 여전히 작동하지 않았습니다.
(킥을 위해 32 비트로 강제 실행하려고 시도했지만 작동하지 않음)

+0

"아키텍처 x86_64에 대한 정의되지 않은 기호"는 라이브러리가 다른 아키텍처 용으로 빌드되었음을 의미합니다. 라이브러리 타겟 아키텍처는 32 비트 (즉, i386) 일 수 있습니다. 이 라이브러리를 64 비트 아키텍처 (x86_64)로 빌드하는 방법을 확인하십시오. – Raviprakash

+0

cmake를 사용하여 64 비트 아키텍처에서 컴파일 할 때 [이 질문] (http://stackoverflow.com/questions/5334095/cmake-multiarchitecture-compilation)을 볼 수 있습니까? – Raviprakash

+0

나는 그것을했고 나는 그것을 시도했다. 불행히도 그 문제는 해결되지 않았습니다. – h4x0rjax

답변

2

FYI (해결되지 않은 경우) 라이브러리에 제대로 연결되어 있는지 확인하십시오.

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

CMakeLists.txt 파일에.

+0

나는 CMake를 처음 접하기 때문에 여기서 약간의 도움이 필요하다. 내가 부스트에 대한 아키텍처 x86_64에 대한 정의되지 않은 기호가 나타납니다. Cmake를 사용하는 CLion을 사용하고 있습니다. find_package (OpenCV의 필수) find_package (부스트 1.55.0 필요한 구성 요소 파일 시스템 스레드 크로노 시스템 원자 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

관련 문제