eabi버전이 달라서 컴파일이 안되는것 같습니다

overhawe의 이미지

먼저 주변 시스템 환경입니다.

타겟 보드 : TI사의 Cortex A8기반 AM3359보드입니다.
사용한 컴파일러 : TI사의 arm-linux-gnueabihf-g++ 4.7.3
크로스 컴파일 호스트 : ubuntu 12.04.3 32bit
에러내용 : Object파일로 전부 컴파일이 된것같은데, 이것을 어플리케이션 응용프로그램으로 만들때 에러가 뜨는것같습니다.
컴파일러 플래그 : -D_REENTRANT -lpthread -lm -o
에러로그 :

/ti/ti-sdk-am335x-evm/linux-devkit/sysroots/i686-arago-linux/usr/bin/../lib/gcc/arm-linux-gnueabihf/4.7.3/../../../../arm-linux-gnueabihf/bin/ld: error: Source object t5csser.o has EABI version 0, but target /destin/mms/Target/bin/t5 has EABI version 5
/ti/ti-sdk-am335x-evm/linux-devkit/sysroots/i686-arago-linux/usr/bin/../lib/gcc/arm-linux-gnueabihf/4.7.3/../../../../arm-linux-gnueabihf/bin/ld: failed to merge target specific data of file t5csser.o
/ti/ti-sdk-am335x-evm/linux-devkit/sysroots/i686-arago-linux/usr/bin/../lib/gcc/arm-linux-gnueabihf/4.7.3/../../../../arm-linux-gnueabihf/bin/ld: error: Source object t5def.o has EABI version 0, but target /destin/mms/Target/bin/t5 has EABI version 5
/ti/ti-sdk-am335x-evm/linux-devkit/sysroots/i686-arago-linux/usr/bin/../lib/gcc/arm-linux-gnueabihf/4.7.3/../../../../arm-linux-gnueabihf/bin/ld: failed to merge target specific data of file t5def.o
collect2: error: ld returned 1 exit status

컴파일러는 저 4.7.3버전으로 써야하는데, 방법이 있는지 문의드립니다.

goforit의 이미지

다른 App의 SDK 컴파일 시에, toolchain (컴파일러 셋) 달라서 일어날 수 있는 흔한 일입니다.
특히 임베디드 환경에서는 컴파일러를 동일하게 써야합니다.

예를 들어서, linux 2.4 커널 초반까지 커널 모듈과 커널 자체가 서로 다른 Toolchain을 써서 만들어져도 동작하게 되어있는데, 종종 아주 예상치 못한 버그를 발생시켰습니다.
그 후에 linux 커널에서는 빌드된 toolchain(컴파일러) 버전을 체크하도록 강제했습니다.

overhawe의 이미지

답변 감사드립니다.

원래저희가 가지고 있는 소스파일을 TI사의 AM3359보드에 적용시키려고
TI사에서 제공하는 SDK에 들어있는 툴체인으로 컴파일 한 결과입니다.

현재 호스트 우분투 리눅스는 3.8.0 커널버전이고 보드는 3.2.0버전입니다.
TI SDK에서 보드에 맞게 셋팅된 SDK가 제 우분투 커널버전에 영향을 미치는지요?

질문에 적었듯이 원 소스를 컴파일하여 오브젝트파일(.o)을 만드는데까지는 성공하였지만 이 오브젝트파일로 어플리케이션을 만드는 과정에서 나오는 오류같습니다.
이 어플리케이션을 보드에 올려야 하기 때문에 TI-SDK에서 제공한 셋팅으로 적용하고 있는것이구요

원소스의 make파일의 오브젝트파일이 꼬이지 않기위해 컴파일전에 make clean으로 초기화시키고 시작해서 다시 컴파일도 해보았습니다.

kukyakya의 이미지

-meabi 옵션을 이용해 보시는건 어떨까요?

overhawe의 이미지

arm-linux-gnueabihf-gcc: error: unrecognized argument in option ‘-mabi=eabi’
arm-linux-gnueabihf-gcc: note: valid arguments to ‘-mabi=’ are: aapcs aapcs-linux apcs-gnu atpcs iwmmxt

-meabi라는 플래그가 안되서 자료를 찾아보니 -mabi=eabi 식으로 하는데 제 컴파일러에선 먹질 않네요...

kukyakya의 이미지

-meabi는 어셈블러 옵션이라 -Wa와 함께 넣어주셔야 합니다.

arm-none-linux-gnueabi-gcc -Wa,-meabi=5 ...

댓글 달기

Filtered HTML

  • 텍스트에 BBCode 태그를 사용할 수 있습니다. URL은 자동으로 링크 됩니다.
  • 사용할 수 있는 HTML 태그: <p><div><span><br><a><em><strong><del><ins><b><i><u><s><pre><code><cite><blockquote><ul><ol><li><dl><dt><dd><table><tr><td><th><thead><tbody><h1><h2><h3><h4><h5><h6><img><embed><object><param><hr>
  • 다음 태그를 이용하여 소스 코드 구문 강조를 할 수 있습니다: <code>, <blockcode>, <apache>, <applescript>, <autoconf>, <awk>, <bash>, <c>, <cpp>, <css>, <diff>, <drupal5>, <drupal6>, <gdb>, <html>, <html5>, <java>, <javascript>, <ldif>, <lua>, <make>, <mysql>, <perl>, <perl6>, <php>, <pgsql>, <proftpd>, <python>, <reg>, <spec>, <ruby>. 지원하는 태그 형식: <foo>, [foo].
  • web 주소와/이메일 주소를 클릭할 수 있는 링크로 자동으로 바꿉니다.

BBCode

  • 텍스트에 BBCode 태그를 사용할 수 있습니다. URL은 자동으로 링크 됩니다.
  • 다음 태그를 이용하여 소스 코드 구문 강조를 할 수 있습니다: <code>, <blockcode>, <apache>, <applescript>, <autoconf>, <awk>, <bash>, <c>, <cpp>, <css>, <diff>, <drupal5>, <drupal6>, <gdb>, <html>, <html5>, <java>, <javascript>, <ldif>, <lua>, <make>, <mysql>, <perl>, <perl6>, <php>, <pgsql>, <proftpd>, <python>, <reg>, <spec>, <ruby>. 지원하는 태그 형식: <foo>, [foo].
  • 사용할 수 있는 HTML 태그: <p><div><span><br><a><em><strong><del><ins><b><i><u><s><pre><code><cite><blockquote><ul><ol><li><dl><dt><dd><table><tr><td><th><thead><tbody><h1><h2><h3><h4><h5><h6><img><embed><object><param>
  • web 주소와/이메일 주소를 클릭할 수 있는 링크로 자동으로 바꿉니다.

Textile

  • 다음 태그를 이용하여 소스 코드 구문 강조를 할 수 있습니다: <code>, <blockcode>, <apache>, <applescript>, <autoconf>, <awk>, <bash>, <c>, <cpp>, <css>, <diff>, <drupal5>, <drupal6>, <gdb>, <html>, <html5>, <java>, <javascript>, <ldif>, <lua>, <make>, <mysql>, <perl>, <perl6>, <php>, <pgsql>, <proftpd>, <python>, <reg>, <spec>, <ruby>. 지원하는 태그 형식: <foo>, [foo].
  • You can use Textile markup to format text.
  • 사용할 수 있는 HTML 태그: <p><div><span><br><a><em><strong><del><ins><b><i><u><s><pre><code><cite><blockquote><ul><ol><li><dl><dt><dd><table><tr><td><th><thead><tbody><h1><h2><h3><h4><h5><h6><img><embed><object><param><hr>

Markdown

  • 다음 태그를 이용하여 소스 코드 구문 강조를 할 수 있습니다: <code>, <blockcode>, <apache>, <applescript>, <autoconf>, <awk>, <bash>, <c>, <cpp>, <css>, <diff>, <drupal5>, <drupal6>, <gdb>, <html>, <html5>, <java>, <javascript>, <ldif>, <lua>, <make>, <mysql>, <perl>, <perl6>, <php>, <pgsql>, <proftpd>, <python>, <reg>, <spec>, <ruby>. 지원하는 태그 형식: <foo>, [foo].
  • Quick Tips:
    • Two or more spaces at a line's end = Line break
    • Double returns = Paragraph
    • *Single asterisks* or _single underscores_ = Emphasis
    • **Double** or __double__ = Strong
    • This is [a link](http://the.link.example.com "The optional title text")
    For complete details on the Markdown syntax, see the Markdown documentation and Markdown Extra documentation for tables, footnotes, and more.
  • web 주소와/이메일 주소를 클릭할 수 있는 링크로 자동으로 바꿉니다.
  • 사용할 수 있는 HTML 태그: <p><div><span><br><a><em><strong><del><ins><b><i><u><s><pre><code><cite><blockquote><ul><ol><li><dl><dt><dd><table><tr><td><th><thead><tbody><h1><h2><h3><h4><h5><h6><img><embed><object><param><hr>

Plain text

  • HTML 태그를 사용할 수 없습니다.
  • web 주소와/이메일 주소를 클릭할 수 있는 링크로 자동으로 바꿉니다.
  • 줄과 단락은 자동으로 분리됩니다.
댓글 첨부 파일
이 댓글에 이미지나 파일을 업로드 합니다.
파일 크기는 8 MB보다 작아야 합니다.
허용할 파일 형식: txt pdf doc xls gif jpg jpeg mp3 png rar zip.
CAPTCHA
이것은 자동으로 스팸을 올리는 것을 막기 위해서 제공됩니다.