gnash 컴파일중 boost관련 에러가 발생하네요ㅠ

sureka12의 이미지

mips-linux-gnu-g++ -EL -g -O2 -pthread -W -Wall -Wcast-align -Wcast-qual -Wpointer-arith -Wreturn-type -Wl,--as-needed -o gparser parser.o -Wl,--export-dynamic  -L/tango/gnash/pack/curl/lib -L/tango/gnash/pack2/package/boost/lib ../libbase/.libs/libltdl.a ../server/.libs/libgnashserver.a -L/lib -L/tango/gnash/pack2/package/gstreamer/lib -L/tango/gnash/pack2/package/glib-2.14/lib -L/tango/gnash/pack2/package/libxml/lib ../libbase/.libs/libgnashbase.a ../backend/.libs/libgnashbackend.a /tango/gnash/gnash-0.8.0/server/.libs/libgnashserver.a /tango/gnash/gnash-0.8.0/libamf/.libs/libgnashamf.a /tango/gnash/gnash-0.8.0/libgeometry/.libs/libgnashgeo.a -L/tango/gnash/pack/sdl/lib /tango/gnash/pack/sdl/lib/libSDL.so ../libamf/.libs/libgnashamf.a /tango/gnash/gnash-0.8.0/libbase/.libs/libgnashbase.a -ljpeg -lz /tango/gnash/pack/curl/lib/libcurl.so /tango/gnash/gnash-0.8.0/libbase/.libs/libltdl.a /tango/gnash/pack2/package/gstreamer/lib/libgstbase-0.10.so /tango/gnash/pack2/package/gstreamer/lib/libgstreamer-0.10.so /tango/gnash/pack2/package/glib-2.14/lib/libgobject-2.0.so /tango/gnash/pack2/package/glib-2.14/lib/libgthread-2.0.so -lpthread /tango/gnash/pack2/package/glib-2.14/lib/libgmodule-2.0.so /tango/gnash/pack2/package/glib-2.14/lib/libglib-2.0.so /tango/gnash/pack2/package/libxml/lib/libxml2.so -ldl -lrt -lm -Wl,--rpath -Wl,/tango/gnash/pack/sdl/lib -Wl,--rpath -Wl,/tango/gnash/pack/curl/lib -Wl,--rpath -Wl,/tango/gnash/pack2/package/gstreamer/lib -Wl,--rpath -Wl,/tango/gnash/pack2/package/glib-2.14/lib -Wl,--rpath -Wl,/tango/gnash/pack2/package/libxml/lib -Wl,--rpath -Wl,/tango/gnash/pack/sdl/lib -Wl,--rpath -Wl,/tango/gnash/pack/curl/lib -Wl,--rpath -Wl,/tango/gnash/pack2/package/gstreamer/lib -Wl,--rpath -Wl,/tango/gnash/pack2/package/glib-2.14/lib -Wl,--rpath -Wl,/tango/gnash/pack2/package/libxml/lib/home/smp86xx_toolkit/mips-4.3/bin/../lib/gcc/mips-linux-gnu/4.3.2/../../../../mips-linux-gnu/bin/ld: warning: library search path "/lib" is unsafe for cross-compilation
../libbase/.libs/libgnashbase.a(libgnashbase_la-log.o): In function `mutex':
/tango/gnash/pack2/package/boost/include/boost-1_38/boost/thread/pthread/mutex.hpp:40: undefined reference to `boost::thread_resource_error::thread_resource_error()'
/tango/gnash/pack2/package/boost/include/boost-1_38/boost/thread/pthread/mutex.hpp:40: undefined reference to `boost::thread_resource_error::thread_resource_error()'
/tango/gnash/pack2/package/boost/include/boost-1_38/boost/thread/pthread/mutex.hpp:40: undefined reference to `typeinfo for boost::thread_resource_error'
/tango/gnash/pack2/package/boost/include/boost-1_38/boost/thread/pthread/mutex.hpp:40: undefined reference to `typeinfo for boost::thread_resource_error'
/tango/gnash/pack2/package/boost/include/boost-1_38/boost/thread/pthread/mutex.hpp:40: undefined reference to `boost::thread_resource_error::~thread_resource_error()'
/tango/gnash/pack2/package/boost/include/boost-1_38/boost/thread/pthread/mutex.hpp:40: undefined reference to `boost::thread_resource_error::~thread_resource_error()'
/tango/gnash/pack2/package/boost/include/boost-1_38/boost/thread/pthread/mutex.hpp:40: undefined reference to `boost::thread_resource_error::thread_resource_error()'
/tango/gnash/pack2/package/boost/include/boost-1_38/boost/thread/pthread/mutex.hpp:40: undefined reference to `boost::thread_resource_error::thread_resource_error()'
/tango/gnash/pack2/package/boost/include/boost-1_38/boost/thread/pthread/mutex.hpp:40: undefined reference to `typeinfo for boost::thread_resource_error'
/tango/gnash/pack2/package/boost/include/boost-1_38/boost/thread/pthread/mutex.hpp:40: undefined reference to `typeinfo for boost::thread_resource_error'
/tango/gnash/pack2/package/boost/include/boost-1_38/boost/thread/pthread/mutex.hpp:40: undefined reference to `boost::thread_resource_error::~thread_resource_error()'
/tango/gnash/pack2/package/boost/include/boost-1_38/boost/thread/pthread/mutex.hpp:40: undefined reference to `boost::thread_resource_error::~thread_resource_error()'
/tango/gnash/pack2/package/boost/include/boost-1_38/boost/thread/pthread/mutex.hpp:40: undefined reference to `boost::thread_resource_error::thread_resource_error()'
/tango/gnash/pack2/package/boost/include/boost-1_38/boost/thread/pthread/mutex.hpp:40: undefined reference to `boost::thread_resource_error::thread_resource_error()'
/tango/gnash/pack2/package/boost/include/boost-1_38/boost/thread/pthread/mutex.hpp:40: undefined reference to `typeinfo for boost::thread_resource_error'
/tango/gnash/pack2/package/boost/include/boost-1_38/boost/thread/pthread/mutex.hpp:40: undefined reference to `typeinfo for boost::thread_resource_error'
/tango/gnash/pack2/package/boost/include/boost-1_38/boost/thread/pthread/mutex.hpp:40: undefined reference to `boost::thread_resource_error::~thread_resource_error()'
/tango/gnash/pack2/package/boost/include/boost-1_38/boost/thread/pthread/mutex.hpp:40: undefined reference to `boost::thread_resource_error::~thread_resource_error()'
/tango/gnash/pack2/package/boost/include/boost-1_38/boost/thread/pthread/mutex.hpp:40: undefined reference to `boost::thread_resource_error::thread_resource_error()'
/tango/gnash/pack2/package/boost/include/boost-1_38/boost/thread/pthread/mutex.hpp:40: undefined reference to `boost::thread_resource_error::thread_resource_error()'
/tango/gnash/pack2/package/boost/include/boost-1_38/boost/thread/pthread/mutex.hpp:40: undefined reference to `typeinfo for boost::thread_resource_error'
/tango/gnash/pack2/package/boost/include/boost-1_38/boost/thread/pthread/mutex.hpp:40: undefined reference to `typeinfo for boost::thread_resource_error'
/tango/gnash/pack2/package/boost/include/boost-1_38/boost/thread/pthread/mutex.hpp:40: undefined reference to `boost::thread_resource_error::~thread_resource_error()'
/tango/gnash/pack2/package/boost/include/boost-1_38/boost/thread/pthread/mutex.hpp:40: undefined reference to `boost::thread_resource_error::~thread_resource_error()'
collect2: ld returned 1 exit status

맨날 질문이 컴파일쪽 질문이네요;;

gnash라는 플래시 플레이어 컴파일중인데 저런 오류가 발생하였습니다.

오류를 찾아봐도 명확히 답변되있는것도 없고, 첨보는 오류라 어떻게 접근해야 될지도 잘 모르겠습니다.;

혹시 해결하신분이 있을까 해서 이렇게 질문 올립니다. 답변기다리겠습니다^^;

P.S thread 라이브러리 링크를 해야된다는 답변을 찾긴했는데 어떤식으로 하란건지 잘 모르겠습니다.; 명확한 답변인지도 잘 모르겠구요.

whitelazy의 이미지

해당 라이브러리 링크가 안되서 그런겁니다.
boost가 템플릿만으로 이루어져있다곤 하지만 몇몇부분은 시스템 건드리는부분이 있고 해당부분을 사용하기위해서는 컴파일 해야한다고 명시하고있습니다.

boost_thread-vc90-mt-1_37.dll
윈도우의 경우에는 이 파일을 컴파일시에 참조해주면 되겠네요...
리눅스도 별로 다를껀 없는데.. 아마 파일명이 만약 gcc4.3이라면
boost_thread-gcc43-mt-1_37.so 이런식으로 되어있을껍니다.
설치경로 참조해보시길 바랍니다.

gcc -L/usr/local/lib/boost -lboost_thread-gcc43-mt-1_37 xxx.cpp
대충 이런식으로 링크거시면 됩니다. 정확한건 아니고 기억으로 쓴거라서 확인은 필요하실껍니다.
대충 되는거만 보고.. 이클립스등으로 컴파일하기때문에 정확히 기억이 안나요 ㅋㅋㅋ

sureka12의 이미지

mips-linux-gnu-gcc -L/tango/gnash/pack2/package/boost-1.34/lib/libboost_thread-gcc43-mt-1_38 mutex.hpp
mutex.hpp:11:42: error: boost/thread/detail/config.hpp: No such file or directory
mutex.hpp:13:29: error: boost/utility.hpp: No such file or directory
mutex.hpp:14:40: error: boost/thread/detail/lock.hpp: No such file or directory
mutex.hpp:34: error: function definition does not declare parameters
mutex.hpp:74: error: function definition does not declare parameters
mutex.hpp:116: error: function definition does not declare parameters

이런식으로 수정중에 있습니다. 하면서 궁금한점이 생겼습니다.

mutex.hpp : boost-1.34/include/boost-1_34_1/boost/thread
config.hpp : boost-1.34/include/boost-1_34_1/boost/thread/detail

위에서 파일을 찾을수 없다고해서 살펴본 결과 경로가 저 위치로 존재합니다.
링크가 잘못되있는거 같아 절대경로로 수정해주고있는데, config.hpp 에 링크 되있는 파일을 또 절대경로로 해주어야되고 뭐 그런식입니다;;

정상적으로 boost를 컴파일 한거 같은데 위처럼 왜 링크가 정상적으로 걸려있지 않은지 궁금하네요;

제가 정상적으로 컴파일을 해주지 않아서 그런건지 아니면 원래 저 파일은 링크가 되어있지 않은데 제가 임의로 링크를 걸어주는 중이라서 그런지 궁금하네요;

sureka12의 이미지

다른 문제가 발생하였습니다;

/tango/gnash/gnash-0.8.4/libbase/.libs/libgnashbase.a(libgnashbase_la-GnashImagePng.o):/tango/gnash/gnash-0.8.4/libbase/GnashImagePng.cpp:69: undefined reference to `png_get_io_ptr'

해결법은 찾은거 같은데 적용을 어떻게 해야되는지 잘모르겠습니다.

http://kldp.org/node/449 이글을 참고하여서 한번 시도해볼려고 하고있습니다.

만약 저렇게 된다면

gcc -o execfile libgnashbase_la-GnashImagePng.o libgnashbase.a

이렇게 해결을 해주면되는건가요?

whitelazy의 이미지

해결을 하셨는지 모르겠습니다...

gcc -L/usr/local/lib/boost \
    -lboost_thread-gcc43-mt-1_37 \
     xxx.cpp  

띄워쓰기를 잘못 보신거같네요 \ 표시있는데서 한번씩 띄워쓰기 해준겁니다.
/usr/local/lib/boost 경로에 있는 boost_thread-gcc43-mt-1_37 라이브러리를 명시적으로 링크해주는겁니다.

http://www.boost.org/doc/libs/1_40_0/more/getting_started/unix-variants.html#link-your-program-to-a-boost-library 를 참조하셔도 됩니다. 제가 예로 들어드린건 B안입니다.

sureka12의 이미지

답변 감사드립니다.

역시 여러가지 방법이 있군요ㅠ

다른 방법으로 해결했는데 문제가 발생하면 이방법으로 한번 해봐야겠습니다.

많이 지나간글인데 신경써주셔서 감사합니다.^^

댓글 달기

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