ID bài viết: 000079861 Loại nội dung: Xử lý sự cố Lần duyệt cuối: 12/08/2012

Tại sao tôi lại gặp phải lỗi liên kết với các con trỏ toàn cầu khi cố gắng biên dịch mã Nios II của mình?

Môi Trường

BUILT IN - ARTICLE INTRO SECOND COMPONENT
Mô tả

An issue has been identified with the linker script generated by the 11.1 version of the Nios® II Board Support Package (BSP) generator.  The issue leads to link errors similar to the following:

/opt/altera/11.0sp1/nios2eds/bin/gnu/H-i686-pc-linux-gnu/bin/.. /lib/gcc/nios2-elf/4.1.2/.. /.. /.. /.. /nios2-elf/lib/libstdc .a(locale.o): Có chức năng 'std::locale::id::_M_id() const':
/build/swbuild/SJ/nightly/11.0sp1/208/l32/work/ip/sopc/app/gnu/BUILD/gnu/build-0-gcc.nios2-elf.i686-pc-linux-gnu/nios2-elf/libstdc -v3/src/.. /.. /.. /.. /src/gcc-4.1/libstdc -v3/src/locale.cc:436: cảnh báo: Không thể tiếp cận (null) (tại 0x00e77e74) từ con trỏ toàn cầu (tại 0x00d217f0) vì bù giờ (1402500) không trong phạm vi cho phép, -32678 đến 32767.

Độ phân giải

Để giải quyết vấn đề này, mở lệnh linker.x linker trong BSP và chỉnh sửa dòng sau:

.rwdata LOADADDR (.rodata) SIZEOF (.rodata) : AT ( LOADADDR (.rodata) SIZEOF (.rodata) SIZEOF (.rwdata) )

Xóa chỉ thị SIZEOF (.rwdata) cuối cùng, để xác định chính xác phần .rwdata như sau:

.rwdata LOADADDR (.rodata) SIZEOF (.rodata) : AT ( LOADADDR (.rodata) SIZEOF (.rodata) )

Vấn đề này sẽ được khắc phục trong phiên bản tương lai của Công cụ Nios II mềm dành cho người Eclipse.

Các sản phẩm liên quan

Bài viết này áp dụng cho 1 sản phẩm

Thiết bị có thể lập trình Intel®

1

Nội dung gốc bằng tiếng Anh trên trang này vừa do con người vừa do máy dịch. Nội dung này chỉ để cung cấp thông tin chung và giúp quý vị thuận tiện. Quý vị không nên tin đây là thông tin hoàn chỉnh hoặc chính xác. Nếu có bất kỳ mâu thuẫn nào giữa bản tiếng Anh và bản dịch của trang này, thì bản tiếng Anh sẽ chi phối và kiểm soát. Xem phiên bản tiếng Anh của trang này.