크로스 컴파일 할 때 동적 라이브러리 사용시 문의 드립니다.

namhw의 이미지


예시로 SDL을 사용하는 어플리케이션을 크로스컴파일 한다고 가정하겠습니다.

현재 컴파일이 진행되는 x86 PC에는 SDL 라이브러리가 설치되었고 해당 어플리케이션의 컴파일 또한 문제없이 이뤄졌습니다.

다만 크로스 컴파일을 할 때 링킹 타임에 "skipping incompatible /usr/lib/libSDL.so" 와 같은 에러가 발생하면서

컴파일이 진행되지 않습니다. 위에서 언급한 libSDL.so 은 당연히 x86용 라이브러리이기 때문에 arm 크로스 컴파일러에서는

당연히 사용하지 못하는게 맞겠지만요.

처음 예상으로는 동적라이브러리(.so 파일)는 경우 실행시 로더에서만 필요하고 컴파일시에는 헤더 정보만 있으면 된다고 생각했었습니다.

따라서 헤더 정보만 존재하면 컴파일은 문제없이 이뤄질거라 생각했습니다. 원래 크로스 컴파일을 할 때 정적라이브러리(.a)의 경우

당연히 해당 CPU에 맞게 컴파일된 라이브러리가 필요하겠지만, 동적 라이브러리의 경우는 그렇지 않다고 생각하는데요.

이와 관련해서 조언을 좀 부탁드리겠습니다.

drinkme의 이미지

-L 옵션으로 경로를 직접 지정해 주거나,
-rpath 로 root filesystem을 지정해 주세요.

namhw의 이미지

그러면 -L 옵션으로 정해준 경로에는 arm용의 동적라이브러리(.so) 파일들이 위치하면 되는 건가요?
제 희망?으로는 .so는 컴파일시 직접 실행파일을 생성하는데 포함되지 않고, 심볼테이블 정도만
사용할 거라 예상했고, 따라서 x86용 동적라이브러리를 그대로 사용할 수 있으면 좋겠단 생각을 갖고
작업을 하고 있었습니다.

그리고 추가 질문으로 컴파일시 많은 라이브러리 파일이 필요하다고 했을때 사용된 모든 라이브러리들을
해당 CPU에 맞게 컴파일한 후 가지고 있어야 하는 거겠죠?

촌놈.

댓글 달기

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