.a .o .so链接问题

内核编译和嵌入式产品的设计与开发
回复
头像
lovekid
帖子: 555
注册时间: 2007-03-05 11:43
联系:

.a .o .so链接问题

#1

帖子 lovekid » 2010-03-14 18:32

编译用于motozn5上的mplayer,编译后得到一大堆.o 文件,还要用到.a库文件(已有),其中又有文件调用.so文件中的函数,链接时出错,请问该怎么链接?编译器是linux-arm-gcc,

这是出错信息
arm-linux-gcc -o mplayer command.o m_property.o mixer.o mp_fifo.o mp_msg.o mplayer.o parser-mpcmd.o input/input.o libao2/ao_mpegpes.o libao2/ao_null.o libao2/ao_pcm.o libao2/audio_out.o libvo/aspect.o libvo/geometry.o libvo/spuenc.o libvo/video_out.o libvo/vo_mpegpes.o libvo/vo_null.o libvo/vo_e8.o libvo/vo_jpeg.o libvo/vo_png.o libvo/vo_md5sum.o libao2/ao_e8.o libvo/vo_pnm.o libvo/vo_tga.o libvo/vo_yuv4mpeg.o asxparser.o codec-cfg.o cpudetect.o edl.o find_sub.o fmt-conversion.o get_path.o m_config.o m_option.o m_struct.o mpcommon.o parser-cfg.o playtree.o playtreeparser.o spudec.o sub_cc.o subopt-helper.o subreader.o vobsub.o libaf/af.o libaf/af_center.o libaf/af_channels.o libaf/af_comp.o libaf/af_delay.o libaf/af_dummy.o libaf/af_equalizer.o libaf/af_extrastereo.o libaf/af_format.o libaf/af_gate.o libaf/af_hrtf.o libaf/af_karaoke.o libaf/af_pan.o libaf/af_resample.o libaf/af_scaletempo.o libaf/af_sinesuppress.o libaf/af_stats.o libaf/af_sub.o libaf/af_surround.o libaf/af_sweep.o libaf/af_tools.o libaf/af_volnorm.o libaf/af_volume.o libaf/filter.o libaf/format.o libaf/reorder_ch.o libaf/window.o libmpcodecs/ad.o libmpcodecs/ad_alaw.o libmpcodecs/ad_dk3adpcm.o libmpcodecs/ad_dvdpcm.o libmpcodecs/ad_hwac3.o libmpcodecs/ad_hwmpa.o libmpcodecs/ad_imaadpcm.o libmpcodecs/ad_msadpcm.o libmpcodecs/ad_msgsm.o libmpcodecs/ad_pcm.o libmpcodecs/dec_audio.o libmpcodecs/dec_teletext.o libmpcodecs/dec_video.o libmpcodecs/img_format.o libmpcodecs/mp_image.o libmpcodecs/native/xa_gsm.o libmpcodecs/pullup.o libmpcodecs/vd.o libmpcodecs/vd_hmblck.o libmpcodecs/vd_lzo.o libmpcodecs/vd_mpegpes.o libmpcodecs/vd_mtga.o libmpcodecs/vd_null.o libmpcodecs/vd_raw.o libmpcodecs/vd_sgi.o libmpcodecs/vf.o libmpcodecs/vf_1bpp.o libmpcodecs/vf_2xsai.o libmpcodecs/vf_blackframe.o libmpcodecs/vf_boxblur.o libmpcodecs/vf_crop.o libmpcodecs/vf_cropdetect.o libmpcodecs/vf_decimate.o libmpcodecs/vf_delogo.o libmpcodecs/vf_denoise3d.o libmpcodecs/vf_detc.o libmpcodecs/vf_dint.o libmpcodecs/vf_divtc.o libmpcodecs/vf_down3dright.o libmpcodecs/vf_dsize.o libmpcodecs/vf_dvbscale.o libmpcodecs/vf_eq.o libmpcodecs/vf_eq2.o libmpcodecs/vf_expand.o libmpcodecs/vf_field.o libmpcodecs/vf_fil.o libmpcodecs/vf_filmdint.o libmpcodecs/vf_flip.o libmpcodecs/vf_format.o libmpcodecs/vf_framestep.o libmpcodecs/vf_gradfun.o libmpcodecs/vf_halfpack.o libmpcodecs/vf_harddup.o libmpcodecs/vf_hqdn3d.o libmpcodecs/vf_hue.o libmpcodecs/vf_il.o libmpcodecs/vf_ilpack.o libmpcodecs/vf_ivtc.o libmpcodecs/vf_kerndeint.o libmpcodecs/vf_mirror.o libmpcodecs/vf_noformat.o libmpcodecs/vf_noise.o libmpcodecs/vf_ow.o libmpcodecs/vf_palette.o libmpcodecs/vf_perspective.o libmpcodecs/vf_phase.o libmpcodecs/vf_pp7.o libmpcodecs/vf_pullup.o libmpcodecs/vf_rectangle.o libmpcodecs/vf_remove_logo.o libmpcodecs/vf_rgb2bgr.o libmpcodecs/vf_rgbtest.o libmpcodecs/vf_rotate.o libmpcodecs/vf_sab.o libmpcodecs/vf_scale.o libmpcodecs/vf_smartblur.o libmpcodecs/vf_softpulldown.o libmpcodecs/vf_softskip.o libmpcodecs/vf_swapuv.o libmpcodecs/vf_telecine.o libmpcodecs/vf_test.o libmpcodecs/vf_tfields.o libmpcodecs/vf_tile.o libmpcodecs/vf_tinterlace.o libmpcodecs/vf_unsharp.o libmpcodecs/vf_vo.o libmpcodecs/vf_yadif.o libmpcodecs/vf_yuvcsp.o libmpcodecs/vf_yuy2.o libmpcodecs/vf_yvu9.o libmpdemux/aac_hdr.o libmpdemux/asfheader.o libmpdemux/aviheader.o libmpdemux/aviprint.o libmpdemux/demuxer.o libmpdemux/demux_aac.o libmpdemux/demux_asf.o libmpdemux/demux_audio.o libmpdemux/demux_avi.o libmpdemux/demux_demuxers.o libmpdemux/demux_film.o libmpdemux/demux_fli.o libmpdemux/demux_lmlm4.o libmpdemux/demux_mf.o libmpdemux/demux_mkv.o libmpdemux/demux_mov.o libmpdemux/demux_mpg.o libmpdemux/demux_nsv.o libmpdemux/demux_pva.o libmpdemux/demux_rawaudio.o libmpdemux/demux_rawvideo.o libmpdemux/demux_realaud.o libmpdemux/demux_real.o libmpdemux/demux_roq.o libmpdemux/demux_smjpeg.o libmpdemux/demux_ts.o libmpdemux/demux_ty.o libmpdemux/demux_ty_osd.o libmpdemux/demux_viv.o libmpdemux/demux_vqf.o libmpdemux/demux_y4m.o libmpdemux/ebml.o libmpdemux/extension.o libmpdemux/mf.o libmpdemux/mp3_hdr.o libmpdemux/mp_taglists.o libmpdemux/mpeg_hdr.o libmpdemux/mpeg_packetizer.o libmpdemux/parse_es.o libmpdemux/parse_mp4.o libmpdemux/video.o libmpdemux/yuv4mpeg.o libmpdemux/yuv4mpeg_ratio.o libvo/osd.o libvo/sub.o osdep/getch2.o osdep/timer-linux.o stream/open.o stream/stream.o stream/stream_cue.o stream/stream_file.o stream/stream_mf.o stream/stream_null.o stream/url.o libvo/font_load.o stream/dvb_tune.o stream/stream_dvb.o libmpcodecs/ad_faad.o libfaad2/bits.o libfaad2/cfft.o libfaad2/common.o libfaad2/decoder.o libfaad2/drc.o libfaad2/drm_dec.o libfaad2/error.o libfaad2/filtbank.o libfaad2/hcr.o libfaad2/huffman.o libfaad2/ic_predict.o libfaad2/is.o libfaad2/lt_predict.o libfaad2/mdct.o libfaad2/mp4.o libfaad2/ms.o libfaad2/output.o libfaad2/pns.o libfaad2/ps_dec.o libfaad2/ps_syntax.o libfaad2/pulse.o libfaad2/rvlc.o libfaad2/sbr_dct.o libfaad2/sbr_dec.o libfaad2/sbr_e_nf.o libfaad2/sbr_fbt.o libfaad2/sbr_hfadj.o libfaad2/sbr_hfgen.o libfaad2/sbr_huff.o libfaad2/sbr_qmf.o libfaad2/sbr_syntax.o libfaad2/sbr_tf_grid.o libfaad2/specrec.o libfaad2/ssr.o libfaad2/ssr_fb.o libfaad2/ssr_ipqf.o libfaad2/syntax.o libfaad2/tns.o libvo/aclib.o libmpcodecs/vf_bmovl.o libaf/af_export.o osdep/mmap_anon.o libmpcodecs/vd_ijpg.o av_opts.o libaf/af_lavcresample.o libmpcodecs/ad_ffmpeg.o libmpcodecs/vd_ffmpeg.o libmpcodecs/vf_lavc.o libmpcodecs/vf_lavcdeint.o libmpcodecs/vf_screenshot.o libaf/af_lavcac3enc.o libmpcodecs/vf_fspp.o libmpcodecs/vf_geq.o libmpcodecs/vf_mcdeint.o libmpcodecs/vf_qp.o libmpcodecs/vf_spp.o libmpcodecs/vf_uspp.o libmpdemux/demux_lavf.o stream/stream_ffmpeg.o libmpcodecs/ad_libmad.o libmpcodecs/vd_libmpeg2.o libmpeg2/alloc.o libmpeg2/cpu_accel.o libmpeg2/cpu_state.o libmpeg2/decode.o libmpeg2/header.o libmpeg2/idct.o libmpeg2/motion_comp.o libmpeg2/slice.o libmpeg2/motion_comp_arm.o libmpeg2/motion_comp_arm_s.o libmpcodecs/vf_pp.o libmpcodecs/ad_mp3lib.o mp3lib/sr1.o osdep/shmem.o libmpcodecs/vd_mpng.o libmpcodecs/ad_realaud.o libmpcodecs/vd_realvid.o stream/cache2.o tremor/bitwise.o tremor/block.o tremor/codebook.o tremor/floor0.o tremor/floor1.o tremor/framing.o tremor/info.o tremor/mapping0.o tremor/mdct.o tremor/registry.o tremor/res012.o tremor/sharedbook.o tremor/synthesis.o tremor/window.o stream/stream_tv.o stream/tv.o stream/frequencies.o stream/tvi_dummy.o stream/tvi_v4l.o stream/audio_in.o stream/tvi_v4l2.o unrar_exec.o stream/stream_vcd.o libmpcodecs/ad_libvorbis.o libmpdemux/demux_ogg.o libmpcodecs/vd_xanim.o libavformat/libavformat.a libavcodec/libavcodec.a libavutil/libavutil.a libpostproc/libpostproc.a libswscale/libswscale.a -Wl,-z,noexecstack -ffast-math -lpng -lz -ljpeg -lenca -lz -lbz2 -lmad -lopencore-amrnb -lopencore-amrwb -lpthread -ldl -rdynamic -static -lm -L/home/ZN5SDK/lib -lezxsoundhelp -lezxsound -laplog -lzcopchannel
libmpcodecs/ad_realaud.o: In function `preinit':
ad_realaud.c:(.text+0x98): warning: Using 'dlopen' in statically linked applications requires at runtime the shared libraries from the glibc version used for linking
/arm-eabi/lib/gcc/arm-linux-gnueabi/3.4.3/../../../../arm-linux-gnueabi/bin/ld: cannot find -lezxsound
collect2: ld returned 1 exit status
make: *** [mplayer] 错误 1
/home/ZN5SDK/lib 目录下既有.a文件,又有.so文件,但ld程序硬说没有lezxsound。

郁闷了好久了
头像
wangks18
帖子: 1151
注册时间: 2008-10-27 22:28
来自: 暮色酒馆

Re: .a .o .so链接问题

#2

帖子 wangks18 » 2010-03-14 19:12

不知道,moto用户帮顶
优猫饼
delectate
帖子: 18311
注册时间: 2008-01-09 22:41

Re: .a .o .so链接问题

#3

帖子 delectate » 2010-03-14 19:12

:em20

cross compile?
头像
wangdu2002
帖子: 13284
注册时间: 2008-12-13 19:39
来自: 物华天宝人杰地灵

Re: .a .o .so链接问题

#4

帖子 wangdu2002 » 2010-03-14 20:09

链接过来了,帮你顶吧。。。交叉编译东东,不懂。。。也许需要请教你的老师。 :em06
行到水穷处,坐看云起时。
海内生明月,天涯共此夕。
--------------------吾本独!
头像
lovekid
帖子: 555
注册时间: 2007-03-05 11:43
联系:

Re: .a .o .so链接问题

#5

帖子 lovekid » 2010-03-14 21:14

可怜我也是半路出家,老师是google和百度,不过交叉编译也是GCC,应该差别不大吧

出现问题的原因就在于mplayer本来不用加载这个.so文件,之所以加载这个文件是因为移植到ZN5后需要调用ZN5的声音接口,加了一个东东,我就不知道怎么链接了 :em06

希望有人能知道
头像
张少彬
帖子: 793
注册时间: 2009-07-18 11:33

Re: .a .o .so链接问题

#6

帖子 张少彬 » 2010-03-14 21:27

我靠......手机?
Men are from Mars, I am from the grave
有一次,我去应聘,考官说:“哦,什么味儿?”
我说:”啊,对不起,是我,你知道死人总是有一点味道的“
头像
lovekid
帖子: 555
注册时间: 2007-03-05 11:43
联系:

Re: .a .o .so链接问题

#7

帖子 lovekid » 2010-03-14 21:38

arm-linux,估计应该差别不大啊
头像
lovekid
帖子: 555
注册时间: 2007-03-05 11:43
联系:

Re: .a .o .so链接问题

#8

帖子 lovekid » 2010-03-15 18:27

不是我想搞这么复杂,没办法啊
头像
lovekid
帖子: 555
注册时间: 2007-03-05 11:43
联系:

Re: .a .o .so链接问题

#9

帖子 lovekid » 2010-03-23 19:20

以解决,误用 -static 选项 :em11
回复