2012-05-01 5 views
0

uclinux 용 교차 컴파일러 툴체인으로 STLPort를 컴파일하려했습니다. STLPort 라이브러리의 루트 폴더에있는 INSTALL에 따르면 새로운 toolchaine을 추가하려면 가장 가까운 가장 가까운 toolchaine을 찾아 컴파일러에 맞게 수정해야합니다. gcc.mak를 선택하고 gcc를 arm-linux-gcc로 변경하고 C++를 arm-linux-C++로 변경합니다. 컴파일 할 때이 오류가 발생했습니다.arm-linux-gcc로 STLPort를 컴파일 할 때 알 수없는 오류가 발생했습니다

.../../src/num_get_float.cpp:44:6: #error Unknown endianness. 
../../src/num_get_float.cpp: In function `double stlpmtx_std::_Stl_atod(char*, 
    int, int)': 
../../src/num_get_float.cpp:728: error: 'struct _ll::<anonymous>' has no member 
    named 'hi' 
../../src/num_get_float.cpp:729: error: 'struct _ll::<anonymous>' has no member 
    named 'lo' 
../../src/num_get_float.cpp:736: error: 'struct _ll::<anonymous>' has no member 
    named 'hi' 
../../src/num_get_float.cpp:737: error: 'struct _ll::<anonymous>' has no member 
    named 'lo' 

이게 무슨 내용입니까? arm-linux-gcc에서 어떻게 STLPort를위한 적절한 Makefile을 만들 수 있습니까?

편집 : 오류가 첫 번째 대답에 의해 고정되어 있지만 다른 오류가 있습니다
*주의 : 을 내가 코드를 컴파일 할 때, 메이크 나에게이 문장을 얻는다! *
이 메이크 파일은 모든 glibc 맛에서 제대로 작동하지 않을 수도있는 시스템 로캘을 사용하려고합니다. 빌드가 실패하면 된 STLport 을 위해 C-로케일에게 전용 버전을 구축하고 결국 내가 c_local.c이 오류를 가지고 할 gcc.mak에 의지하십시오 :

In file included from c_locale.c:32: 
arm-linux-gcc -I../stlport -W -Wno-sign-compare -Wno-unused -Wno-uninitialized -D_STLP_USE_GLIBC -D_STLP_REAL_LOCALE_IMPLEMENTED -O2 -fpic c_locale.c -c -o ../lib/obj/GCC/ReleaseD/c_locale.o 
c_locale_glibc/c_locale_glibc.c: In function `_Find_locale': 
c_locale_glibc/c_locale_glibc.c:118: warning: return makes pointer from integer without a cast 
c_locale_glibc/c_locale_glibc.c: In function `_Locale_decimal_point': 
c_locale_glibc/c_locale_glibc.c:242: error: `DECIMAL_POINT' undeclared (first use in this function) 
c_locale_glibc/c_locale_glibc.c:242: error: (Each undeclared identifier is reported only once 
c_locale_glibc/c_locale_glibc.c:242: error: for each function it appears in.) 
c_locale_glibc/c_locale_glibc.c: In function `_Locale_thousands_sep': 
c_locale_glibc/c_locale_glibc.c:246: error: `THOUSANDS_SEP' undeclared (first use in this function) 
c_locale_glibc/c_locale_glibc.c: In function `_Locale_grouping': 
c_locale_glibc/c_locale_glibc.c:250: error: `GROUPING' undeclared (first use in this function) 
c_locale_glibc/c_locale_glibc.c: In function `_Locale_int_curr_symbol': 
c_locale_glibc/c_locale_glibc.c:289: error: `INT_CURR_SYMBOL' undeclared (first use in this function) 
c_locale_glibc/c_locale_glibc.c: In function `_Locale_currency_symbol': 
c_locale_glibc/c_locale_glibc.c:292: error: `CURRENCY_SYMBOL' undeclared (first use in this function) 
c_locale_glibc/c_locale_glibc.c: In function `_Locale_mon_decimal_point': 
c_locale_glibc/c_locale_glibc.c:295: error: `MON_DECIMAL_POINT' undeclared (first use in this function) 
c_locale_glibc/c_locale_glibc.c: In function `_Locale_mon_thousands_sep': 
c_locale_glibc/c_locale_glibc.c:298: error: `MON_THOUSANDS_SEP' undeclared (first use in this function) 
c_locale_glibc/c_locale_glibc.c: In function `_Locale_mon_grouping': 
c_locale_glibc/c_locale_glibc.c:301: error: `MON_GROUPING' undeclared (first use in this function) 
c_locale_glibc/c_locale_glibc.c: In function `_Locale_positive_sign': 
c_locale_glibc/c_locale_glibc.c:304: error: `POSITIVE_SIGN' undeclared (first use in this function) 
c_locale_glibc/c_locale_glibc.c: In function `_Locale_negative_sign': 
c_locale_glibc/c_locale_glibc.c:307: error: `NEGATIVE_SIGN' undeclared (first use in this function) 
c_locale_glibc/c_locale_glibc.c: In function `_Locale_int_frac_digits': 
c_locale_glibc/c_locale_glibc.c:310: error: `INT_FRAC_DIGITS' undeclared (first use in this function) 
c_locale_glibc/c_locale_glibc.c: In function `_Locale_frac_digits': 
c_locale_glibc/c_locale_glibc.c:313: error: `FRAC_DIGITS' undeclared (first use in this function) 
c_locale_glibc/c_locale_glibc.c: In function `_Locale_p_cs_precedes': 
c_locale_glibc/c_locale_glibc.c:316: error: `P_CS_PRECEDES' undeclared (first use in this function) 
c_locale_glibc/c_locale_glibc.c: In function `_Locale_p_sep_by_space': 
c_locale_glibc/c_locale_glibc.c:319: error: `P_SEP_BY_SPACE' undeclared (first use in this function) 
c_locale_glibc/c_locale_glibc.c: In function `_Locale_p_sign_posn': 
c_locale_glibc/c_locale_glibc.c:322: error: `P_SIGN_POSN' undeclared (first use in this function) 
c_locale_glibc/c_locale_glibc.c: In function `_Locale_n_cs_precedes': 
c_locale_glibc/c_locale_glibc.c:325: error: `N_CS_PRECEDES' undeclared (first use in this function) 
c_locale_glibc/c_locale_glibc.c: In function `_Locale_n_sep_by_space': 
c_locale_glibc/c_locale_glibc.c:328: error: `N_SEP_BY_SPACE' undeclared (first use in this function) 
c_locale_glibc/c_locale_glibc.c: In function `_Locale_n_sign_posn': 
c_locale_glibc/c_locale_glibc.c:331: error: `N_SIGN_POSN' undeclared (first use in this function) 
c_locale_glibc/c_locale_glibc.c: In function `_Locale_ctype_create': 
c_locale_glibc/c_locale_glibc.c:485: error: `_NL_CTYPE_TOLOWER_EL' undeclared (first use in this function) 
c_locale_glibc/c_locale_glibc.c:487: error: `_NL_CTYPE_TOUPPER_EL' undeclared (first use in this function) 
c_locale_glibc/c_locale_glibc.c: In function `cname_lookup': 
c_locale_glibc/c_locale_glibc.c:526: error: `_NL_CTYPE_NAMES_EL' undeclared (first use in this function) 
c_locale_glibc/c_locale_glibc.c:531: error: `_NL_CTYPE_HASH_SIZE' undeclared (first use in this function) 
c_locale_glibc/c_locale_glibc.c:532: error: `_NL_CTYPE_HASH_LAYERS' undeclared (first use in this function) 
make: *** [../lib/obj/GCC/ReleaseD/c_locale.o] Error 1 

이 오류가 관련되어 생각 메이크 파일의주의. 문제를 해결하려면 어떻게해야합니까? gcc.mak 의 리조트는 무엇입니까 출석 중입니까?

답변

1

uclinux를 실행할 ARM 프로세서의 엔디안을 확인하십시오. 그런 다음이 오류를 지나치려면 Makefile에 gcc -D_STLP_BIG_ENDIAN ... 또는 gcc -D_STLP_LITTLE_ENDIAN ...을 실행 해보십시오.