문서 ID: 000079861 콘텐츠 형태: 문제 해결 마지막 검토일: 2012-08-12

Nios II 코드를 컴파일하려고 할 때 전역 포인터에 링커 오류가 발생하는 이유는 무엇입니까?

환경

BUILT IN - ARTICLE INTRO SECOND COMPONENT
설명

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): 기능 '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: 경고: 오프셋(1402500)이 허용 범위를 벗어나기 때문에 전역 포인터(0x00d217f0)에서 (null)에 도달할 수 없음(0x00e77e74) -32678에서 32767까지.

해결 방법

이 문제를 해결하려면 BSP에서 linker.x 링커 스크립트를 열고 다음 행을 편집합니다.

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

마지막 SIZEOF(.rwdata) 지시문을 제거하여 .rwdata 섹션을 다음과 같이 올바르게 정의합니다.

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

이 문제는 Eclipse 위한 Nios II 소프트웨어 빌드 도구의 향후 버전에서 해결되어야 합니다.

관련 제품

이 문서는 다음 항목에 적용됩니다. 1 제품

인텔® 프로그래밍 가능 장치

1

이 페이지의 콘텐츠는 원본 영어 콘텐츠에 대한 사람 번역 및 컴퓨터 번역의 조합으로 완성되었습니다. 이 콘텐츠는 편의와 일반적인 정보 제공을 위해서만 제공되었으며, 완전하거나 정확한 것으로 간주되어서는 안 됩니다. 이 페이지의 영어 버전과 번역 사이에 모순이 있는 경우 영어 버전이 우선적으로 적용됩니다. 이 페이지의 영어 버전을 확인하십시오.