컴파일 할 때 라이브러리 참조에 관한 문제

cococo의 이미지

안녕하십니까. 모두 건강하신지요. 저는 어제부터 목에....

잡소리 그만하고 질문 올립죠. -_-;;;;
어찌어찌 해서, nano-x 기반의 GUI 프로그램을 짰습니다.
이게 ARM cpu를 쓰는 보드에 올라가기 때문에 , 크로스 컴파일을 했습니다만...
사실, Make에 대해 잘 몰라서, 적당히 다른 선각자께서 만들어 주신 Make를 고쳐 썼습니다.

정확하게 말하면, 고쳐 쓰려고 했습니다.
근데.... 안되더군요.
이게 웃기는게, 컴파일 할 때 에러 나는 게 아니라, 컴파일은 에러없이 다 되는데(waring 도 없습니다. ), 실제로 실행해 보면 참조하는 라이브러리가 arm용으로 컴파일된 라이브러리가 아니라 데스크탑용이 참조된 것 같아요. 왜냐면, 데스크톱에는 마우스랑 키보드가 있는 옵션으로 라이브러리를 컴파일했고, 타겟 보드(=ARM cpu)용으로는 마우스/키보드 없는 옵션으로 라이브러리를 컴파일했거든요.
근데 보드에서 나오는 에러 메시지는 [keyboard initialize error]라서요.
게다가 기본 제공되는 예제 프로그램을 타겟 보드용으로 컴파일한 다음 타겟 보드에서 시험할 때는 돌아가구요...

이런 상황이라면, 어떤 쪽이 문제가 될 가능성이 높을까요???

상황을 정리하면
1. nano-x는 예제 프로그램, 기본 Makefile등을 제공.
2. nano-x자체의 cross complie ->성공
3. 제공되는 예제의 cross complie -> 성공 / 실행 -> 성공
4. 기본 제공이 아닌, 다른 곳에서 얻어온 makefile을 이용한 예제 파일의 cross compile-> 성공 / 실행 -> 실패
5. complie할 때, 에러 메시지 없음 ( -Wall 옵션으로 확인 )

make파일을 같이 올리겠지만... 디렉토리 자체는 전부 arm용 디렉토리로 고친 것 같구요. Makefile을 거쳐서 나온 compile 명령 문장( arm-linux-gcc -I/usr/local/microwindow/..... 등등 )도 전부 맞는 것 같은데...

Make파일을 참고로 올려봅니다.
내용보시면 아시겠지만....간단한 쪽(=용량적은 쪽)이 제가 손 댄 겁니다... -_-;;

고견 기대하겠습니다. 좋은 하루 되시기 바랍니다.

File attachments: 
첨부파일 크기
파일 makes.tar20 KB
초코리의 이미지

x86용과 arm용이 같이 물려서

실행파일은 만든다면

링크 단계에서 에러가 발생합니다.

x86용 바이너리를 물고 들어간 문제는 아닌것 같습니다.

cococo의 이미지

문제가 해결되었기에 원인을 올립니다.

최초 microwindow를 Make install할 때, 컴파일된 라이브러리들이 /usr/lib에 복사되더군요.
이게 cross complie하면 /usr/arm-linux/lib에 복사되는데요.
어찌 된 영문인지, 최초 make install 은 복사가 되었었는데, 나중에 다시 make install할 때는 복사가 안 되더라구요.
결국 최초의 것만 남아 있게 되어서, 위와 같은 일이 일어났었습니다.

[초코리]님의 말씀대로, 라이브러리 파일 자체는 i386용이 아닌, ARM용이 링크되었으니, 컴파일 할 때 에러가 나지는 않았던 것으로 생각됩니다. (왜 전 이 생각을 못했는지... -_-;;;)

이상입니다. 혹시 저와 비슷한 상황이신 분, 참고가 되시길... -_-;;;

행복하세요!! 그럼 이만!!

댓글 달기

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
이것은 자동으로 스팸을 올리는 것을 막기 위해서 제공됩니다.