2014-06-17 19 views
6

Tôi đang cố gắng để biên dịch thư viện này trên mac os x Mavericks 10.9.3 64-bit: http://www.openfec.org/downloads.html"biểu tượng Không xác định cho kiến ​​trúc x86_64:"

Tôi làm theo các README chính xác, và đã nhận lỗi này:

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

Tôi chỉ cần theo README cho bản phân phối của OpenFEC (được tìm thấy tại http://www.openfec.org/downloads.html). Khi cố gắng thực hiện, lỗi này phát sinh. Tôi không biết vấn đề là gì.

Đây là những gì tôi đã làm sau khi untarring phân phối:
(1.): mkdir xây dựng
(2.): cd xây dựng
(3.): cmake .. -DDEBUG: STRING = OFF
(4.): thực hiện

Bất kỳ ý tưởng nào?

Chỉnh sửa: Đã cố gắng buộc cmake sử dụng 64 bit, vẫn không hoạt động.
(Cố gắng buộc nó vào 32-bit chỉ để đá, cũng không hoạt động)

+0

"Ký hiệu không xác định cho kiến ​​trúc x86_64" có nghĩa là thư viện được xây dựng cho một số kiến ​​trúc khác. Kiến trúc đích của thư viện có thể là 32 bit (tức là i386). Tìm hiểu cách xây dựng thư viện này cho kiến ​​trúc 64 bit (x86_64). – Raviprakash

+0

Bạn có thể xem [câu hỏi này] (http://stackoverflow.com/questions/5334095/cmake-multiarchitecture-compilation) để biên dịch trong kiến ​​trúc 64 bit bằng cmake không. – Raviprakash

+0

Tôi đã làm, và tôi đã thử nó. Thật không may là đã không khắc phục được sự cố. – h4x0rjax

Trả lời

2

FYI, nếu điều này không được giải quyết. Kiểm tra xem bạn có đang liên kết với thư viện của mình đúng cách không.

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

Trong tệp CMakeLists.txt của bạn.

+0

Tôi mới tham gia CMake, vì vậy tôi cần một chút trợ giúp ở đây. Tôi nhận được các biểu tượng Undefined cho kiến ​​trúc x86_64 để tăng tốc. Tôi đang sử dụng CLion, sử dụng Cmake. Đây là những gì tôi có ở dưới cùng của tập tin CMakeLists.txt tôi: find_package (OpenCV REQUIRED) find_package (Boost 1.55.0 YÊU CẦU CÁC THÀNH PHẦN chủ đề hệ thống tập tin hệ thống chrono program_options nguyên tử) include_directories ($ {Boost_INCLUDE_DIRS}) add_executable ($ Oneprint {SOURCE_FILES}) target_link_libraries (Oneprint $ {OpenCV_LIBS}) target_link_libraries (Oneprint $ {Boost_LIBRARIES}) Làm thế nào tôi sẽ sử dụng đề nghị trên của bạn (tên thật hoặc bí danh)? – Patricia

Các vấn đề liên quan