it-swarm-ja.com

リンカエラー:シンボルを読み取れませんでした:無効な操作

Ubuntu 12.04で GMediaRender をコンパイルしようとしています。 make中にエラーが発生しました:

gcc  -Wall -Wpointer-arith -Wcast-align -Wmissing-prototypes -Wmissing-declarations -L/usr/lib  -o gmediarender  main.o upnp.o upnp_control.o upnp_connmgr.o upnp_transport.o upnp_device.o upnp_renderer.o webserver.o output_gstreamer.o xmlescape.o -pthread -lgstreamer-0.10 -lgobject-2.0 -lgmodule-2.0 -lgthread-2.0 -lrt -lxml2 -lglib-2.0   -lupnp  
/usr/bin/ld: upnp.o: undefined reference to symbol 'ixmlDocument_createElementNS'
/usr/bin/ld: note: 'ixmlDocument_createElementNS' is defined in DSO /usr/lib/libixml.so.2 so try adding it to the linker command line
/usr/lib/libixml.so.2: could not read symbols: Invalid operation
collect2: ld returned 1 exit status
make: *** [gmediarender] Error 1

-lixml2-L/usr/lib/libixml.so.2を追加しようとしましたが、次のようになりました。

gcc  -Wall -Wpointer-arith -Wcast-align -Wmissing-prototypes -Wmissing-declarations -L/usr/lib -L/usr/lib/libixml.so.2 -o gmediarender  main.o upnp.o upnp_control.o upnp_connmgr.o upnp_transport.o upnp_device.o upnp_renderer.o webserver.o output_gstreamer.o xmlescape.o -pthread -lgstreamer-0.10 -lgobject-2.0 -lgmodule-2.0 -lgthread-2.0 -lxml2 -lglib-2.0   -lupnp -lrt -lixml2
/usr/bin/ld: cannot find -lixml2
collect2: ld returned 1 exit status

ここから出るのを手伝ってください-私は初心者です

1
laplasz

ついに私はこの問題の解決策を見つけました このページで それで私は/usr/lib/libixml.so.2をgccパラメーターに明示的に追加しました:

gcc -Wall -Wpointer-arith -Wcast-align -Wmissing-prototypes -Wmissing-declarations -L/usr/lib -o gmediarender main.o upnp.o upnp_control.o upnp_connmgr.o upnp_transport.o upnp_device.o upnp_renderer.o webserver .o output_gstreamer.o xmlescape.o /usr/lib/libixml.so.2 -pthread -lgstreamer-0.10 -lgobject-2.0 -lgmodule-2.0 -lgthread-2.0 -lrt -lxml2 -lglib-2.0 -lupnp

2
laplasz