gnash 컴파일중 boost관련 에러가 발생하네요ㅠ
글쓴이: sureka12 / 작성시간: 화, 2009/08/25 - 12:55오후
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 라이브러리 링크를 해야된다는 답변을 찾긴했는데 어떤식으로 하란건지 잘 모르겠습니다.; 명확한 답변인지도 잘 모르겠구요.
Forums:
해당 라이브러리
해당 라이브러리 링크가 안되서 그런겁니다.
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
대충 이런식으로 링크거시면 됩니다. 정확한건 아니고 기억으로 쓴거라서 확인은 필요하실껍니다.
대충 되는거만 보고.. 이클립스등으로 컴파일하기때문에 정확히 기억이 안나요 ㅋㅋㅋ
수정 중 궁금한 부분이 생겼습니다.
이런식으로 수정중에 있습니다. 하면서 궁금한점이 생겼습니다.
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를 컴파일 한거 같은데 위처럼 왜 링크가 정상적으로 걸려있지 않은지 궁금하네요;
제가 정상적으로 컴파일을 해주지 않아서 그런건지 아니면 원래 저 파일은 링크가 되어있지 않은데 제가 임의로 링크를 걸어주는 중이라서 그런지 궁금하네요;
해결법은 찾은거 같은데..
다른 문제가 발생하였습니다;
/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
이렇게 해결을 해주면되는건가요?
해결을 하셨는지
해결을 하셨는지 모르겠습니다...
띄워쓰기를 잘못 보신거같네요 \ 표시있는데서 한번씩 띄워쓰기 해준겁니다.
/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안입니다.
답변 감사드립니다^^;
답변 감사드립니다.
역시 여러가지 방법이 있군요ㅠ
다른 방법으로 해결했는데 문제가 발생하면 이방법으로 한번 해봐야겠습니다.
많이 지나간글인데 신경써주셔서 감사합니다.^^
댓글 달기