Khác

Mac Làm cách nào để tránh 'Ký hiệu không xác định cho kiến ​​trúc x86_64'?

mikezang

đến
Áp phích gốc
Ngày 22 tháng 5 năm 2010
Tokyo, Nhật Bản
  • Ngày 25 tháng 7 năm 2015
Tôi đã cố gắng tạo trình biên dịch chéo cho Lego RCX cũ của mình, tôi sử dụng GCC 3.3.6 và NEWLIB 1.13.
Mã: 1. Download GCC 3.3.6 and Unzip cd ../.. wget http://gcc.parentingamerica.com/releases/gcc-3.3.6/gcc-3.3.6.tar.gz tar xzvf gcc-3.3.6/gcc-3.3.6.tar.gz 2. Download NEWLIB 1.13 and unzip wget ftp://sourceware.org/pub/newlib/newlib-1.13.0.tar.gz tar xzvf newlib-1.13.0.tar.gz 3. Link NEWLIB to GCC cd gcc-3.3.6/ ln -s ../newlib-1.13.0/newlib . 4. Make h8300-hms build folder cd .. mkdir build_gcc_h8300-hms 5. Config ../gcc-3.3.6/configure --prefix=/usr/local/h8300-hms --program-prefix=h8300-hms- --target=h8300-hms --enable-languages=c,c++ --with-newlib 6. Make make CFLAGS='-O2 -fomit-frame-pointer' all
Khi tôi thực hiện nó, cuối cùng tôi gặp lỗi như bên dưới, tôi có thể làm gì?
Mã: gcc -c -O2 -fomit-frame-pointer -DIN_GCC -DCROSS_COMPILE -W -Wall -Wwrite-strings -Wstrict-prototypes -Wmissing-prototypes -DHAVE_CONFIG_H -I. -Icp -I../../gcc-3.3.6/gcc -I../../gcc-3.3.6/gcc/cp -I../../gcc-3.3.6/gcc/config -I../../gcc-3.3.6/gcc/../include ../../gcc-3.3.6/gcc/cp/cp-lang.c -o cp/cp-lang.o gcc -O2 -fomit-frame-pointer -DIN_GCC -DCROSS_COMPILE -W -Wall -Wwrite-strings -Wstrict-prototypes -Wmissing-prototypes -Wtraditional -pedantic -Wno-long-long -DHAVE_CONFIG_H -o cc1plus cp/call.o cp/decl.o cp/expr.o cp/pt.o cp/typeck2.o cp/class.o cp/decl2.o cp/error.o cp/lex.o cp/parse.o cp/ptree.o cp/rtti.o cp/spew.o cp/typeck.o cp/cvt.o cp/except.o cp/friend.o cp/init.o cp/method.o cp/search.o cp/semantics.o cp/tree.o cp/repo.o cp/dump.o cp/optimize.o cp/mangle.o cp/cp-lang.o attribs.o c-common.o c-format.o c-pragma.o c-semantics.o c-lex.o c-dump.o c-pretty-print.o c-opts.o main.o libbackend.a libcpp.a ./intl/libintl.a -liconv ../libiberty/libiberty.a Undefined symbols for architecture x86_64: '_libc_name_p', referenced from: _nothrow_libfn_p in except.o ld: symbol(s) not found for architecture x86_64 clang: error: linker command failed with exit code 1 (use -v to see invocation) make[1]: *** [cc1plus] Error 1 make: *** [all-gcc] Error 2

Madd the Sane

đến
Ngày 8 tháng 11 năm 2010


Utah
  • Ngày 2 tháng 8 năm 2015
Điều đang xảy ra là trình liên kết của OS X không thể tìm thấy chức năng được chỉ định trong bất kỳ thứ gì mà nó đang cố gắng liên kết. Lý do cho điều này có thể là thiếu macro bộ xử lý trước hoặc mã đã biên dịch và / hoặc thư viện không được liên kết.

mikezang

đến
Áp phích gốc
Ngày 22 tháng 5 năm 2010
Tokyo, Nhật Bản
  • Ngày 4 tháng 8 năm 2015
Madd the Sane cho biết: Điều đang xảy ra là trình liên kết của OS X không thể tìm thấy chức năng được chỉ định trong bất kỳ thứ gì mà nó đang cố gắng liên kết. Lý do cho điều này có thể là thiếu macro bộ xử lý trước hoặc mã đã biên dịch và / hoặc thư viện không được liên kết.
Cảm ơn tin nhắn của bạn! bạn có thể cho tôi biết làm thế nào để giải quyết vấn đề này? NS

cqexbesd

Ngày 4 tháng 6 năm 2009
nước Đức
  • Ngày 4 tháng 8 năm 2015
mikezang đã nói: Cảm ơn vì tin nhắn của bạn! bạn có thể cho tôi biết làm thế nào để giải quyết vấn đề này?

Tôi chỉ đoán ở đây nhưng tôi nghĩ bạn có thể cần phải cài đặt gperf. Sau đó, bắt đầu xây dựng từ đầu - tức là tạo bản phân phối hoặc tương tự - hoặc chỉ cần xóa thư mục của bạn và mở rộng lại tệp tar.

Căng mọng

Ngày 2 tháng 10 năm 2006
Vùng đất của Hy vọng và Vinh quang
  • Ngày 4 tháng 8 năm 2015
mikezang đã nói: Cảm ơn vì tin nhắn của bạn! bạn có thể cho tôi biết làm thế nào để giải quyết vấn đề này?

Có vẻ như bạn đang sử dụng GCC sai.

Nhập đường dẫn đầy đủ tới GCC 3.3.6 hoặc thêm đường dẫn đó vào đường dẫn với tên khác với GCC (vì Apple đã cung cấp lệnh GCC thực sự chạy tiếng kêu). Đây là lý do tại sao bạn gặp lỗi sau:

ld: (các) biểu tượng không tìm thấy cho kiến ​​trúc x86_64

clang: error: lệnh linker không thành công với mã thoát 1 (sử dụng -v để xem lệnh gọi)

Bạn thực sự đang chạy Clang biên dịch thành x86_64. Bạn cần chạy GCC mà bạn đã biên dịch. Thông thường khi biên dịch GCC dưới dạng trình biên dịch chéo, bạn đặt cho nó một tên khác với GCC (là một trong những tùy chọn cấu hình tập lệnh cho GCC khi biên dịch) để bạn có thể phân biệt được sự khác biệt giữa GCC do hệ thống cung cấp và GCC chéo của riêng bạn. trình biên dịch.

mikezang

đến
Áp phích gốc
Ngày 22 tháng 5 năm 2010
Tokyo, Nhật Bản
  • Ngày 4 tháng 8 năm 2015
cqexbesd đã nói: Tôi chỉ đoán ở đây nhưng tôi nghĩ bạn có thể cần phải cài đặt gperf. Sau đó, bắt đầu xây dựng từ đầu - tức là tạo bản phân phối hoặc tương tự - hoặc chỉ cần xóa thư mục của bạn và mở rộng lại tệp tar.
Tuyệt vời! Đêm qua tôi đã tìm thấy trang này http://stackoverflow.com/questions/3040801/error-compiling-gcc-undefined-reference-to-libc-name-p , lỗi sẽ biến mất sau khi làm theo nó.