[opus] Problem compiling opus-tools-0.1.7

Jean-Marc Valin jmvalin at jmvalin.ca
Tue Sep 24 05:46:59 PDT 2013


Hi,

Seems like it's not linking with libm. I suspect it has to do with
linking statically with libopus.a (is that intended?). Maybe opus-tools
relies on the fact that libopus is linked with libm and doesn't
explicitly add it? Greg?

	Jean-Marc

On 09/24/2013 06:09 AM, bat guano wrote:
> Hi
> I'm having a problem compiling opus-tools-0.1.7.
> Version opus-tools-0.1.6 seems to compile OK.
> 
> I've tried with opus-1.0.3 and opus-1.1-beta.
> 
> The errors are like this:-
> "undefined reference to `sqrtf'" etc.
> 
> This OS is Peppermint Three, similar to Ubuntu 12.04.
> It uses:-
> gcc --version
> gcc (Ubuntu/Linaro 4.6.3-1ubuntu5) 4.6.3
> 
> 
> Google says it's maybe something to do with the "linking process" which might be caused by the gcc compiler.
> Can something be done with the opus code to overcome this, or shall I compile on a different/better/newer OS?
> 
> 
> ***********************************************************************************************
> peppermint at peppermint ~/build/opus-tools-0.1.7 $ make
> make  all-recursive
> make[1]: Entering directory `/home/peppermint/build/opus-tools-0.1.7'
> Making all in .
> make[2]: Entering directory `/home/peppermint/build/opus-tools-0.1.7'
>   CC       src/opusenc-opus_header.o
>   CC       src/opusenc-opusenc.o
>   CC       src/opusenc-picture.o
>   CC       src/opusenc-resample.o
> src/resample.c: In function ‘update_filter’:
> src/resample.c:607:20: warning: comparison between signed and unsigned integer expressions [-Wsign-compare]
> src/resample.c:688:23: warning: comparison between signed and unsigned integer expressions [-Wsign-compare]
> src/resample.c:696:23: warning: comparison between signed and unsigned integer expressions [-Wsign-compare]
> src/resample.c:699:20: warning: comparison between signed and unsigned integer expressions [-Wsign-compare]
> src/resample.c:706:23: warning: comparison between signed and unsigned integer expressions [-Wsign-compare]
> src/resample.c: In function ‘opustools_resampler_process_float’:
> src/resample.c:872:21: warning: comparison between signed and unsigned integer expressions [-Wsign-compare]
> src/resample.c:875:20: warning: comparison between signed and unsigned integer expressions [-Wsign-compare]
> src/resample.c: In function ‘opustools_resampler_process_int’:
> src/resample.c:928:19: warning: comparison between signed and unsigned integer expressions [-Wsign-compare]
> src/resample.c:935:19: warning: comparison between signed and unsigned integer expressions [-Wsign-compare]
> src/resample.c:945:16: warning: comparison between signed and unsigned integer expressions [-Wsign-compare]
>   CC       src/opusenc-audio-in.o
>   CC       src/opusenc-diag_range.o
>   CC       src/opusenc-flac.o
>   CC       src/opusenc-lpc.o
>   CC       win32/opusenc-unicode_support.o
>   CCLD     opusenc
>   CC       src/opusdec-opus_header.o
>   CC       src/opusdec-wav_io.o
>   CC       src/opusdec-wave_out.o
>   CC       src/opusdec-opusdec.o
>   CC       src/opusdec-resample.o
> src/resample.c: In function ‘update_filter’:
> src/resample.c:607:20: warning: comparison between signed and unsigned integer expressions [-Wsign-compare]
> src/resample.c:688:23: warning: comparison between signed and unsigned integer expressions [-Wsign-compare]
> src/resample.c:696:23: warning: comparison between signed and unsigned integer expressions [-Wsign-compare]
> src/resample.c:699:20: warning: comparison between signed and unsigned integer expressions [-Wsign-compare]
> src/resample.c:706:23: warning: comparison between signed and unsigned integer expressions [-Wsign-compare]
> src/resample.c: In function ‘opustools_resampler_process_float’:
> src/resample.c:872:21: warning: comparison between signed and unsigned integer expressions [-Wsign-compare]
> src/resample.c:875:20: warning: comparison between signed and unsigned integer expressions [-Wsign-compare]
> src/resample.c: In function ‘opustools_resampler_process_int’:
> src/resample.c:928:19: warning: comparison between signed and unsigned integer expressions [-Wsign-compare]
> src/resample.c:935:19: warning: comparison between signed and unsigned integer expressions [-Wsign-compare]
> src/resample.c:945:16: warning: comparison between signed and unsigned integer expressions [-Wsign-compare]
>   CC       src/opusdec-diag_range.o
>   CC       win32/opusdec-unicode_support.o
>   CCLD     opusdec
>   CC       src/opusinfo-opus_header.o
>   CC       src/opusinfo-opusinfo.o
>   CC       src/opusinfo-info_opus.o
>   CC       src/opusinfo-picture.o
>   CC       win32/opusinfo-unicode_support.o
>   CCLD     opusinfo
>   CC       src/opusrtp.o
>   CCLD     opusrtp
> /usr/local/lib/libopus.a(opus_decoder.o): In function `opus_decode_frame':
> /home/peppermint/build/opus-1.1-beta/src/opus_decoder.c:536: undefined reference to `exp'
> /usr/local/lib/libopus.a(celt_decoder.o): In function `celt_decode_lost':
> /home/peppermint/build/opus-1.1-beta/celt/celt_decoder.c:610: undefined reference to `sqrtf'
> /home/peppermint/build/opus-1.1-beta/celt/celt_decoder.c:539: undefined reference to `sqrtf'
> /usr/local/lib/libopus.a(pitch.o): In function `remove_doubling':
> /home/peppermint/build/opus-1.1-beta/celt/pitch.c:445: undefined reference to `sqrtf'
> /home/peppermint/build/opus-1.1-beta/celt/pitch.c:481: undefined reference to `sqrtf'
> /usr/local/lib/libopus.a(quant_bands.o): In function `quant_coarse_energy_impl':
> /home/peppermint/build/opus-1.1-beta/celt/quant_bands.c:202: undefined reference to `floorf'
> /usr/local/lib/libopus.a(quant_bands.o): In function `quant_fine_energy':
> /home/peppermint/build/opus-1.1-beta/celt/quant_bands.c:375: undefined reference to `floorf'
> /usr/local/lib/libopus.a(quant_bands.o): In function `amp2Log2':
> /home/peppermint/build/opus-1.1-beta/celt/quant_bands.c:547: undefined reference to `log'
> /usr/local/lib/libopus.a(vq.o): In function `exp_rotation':
> /home/peppermint/build/opus-1.1-beta/celt/vq.c:81: undefined reference to `cosf'
> /home/peppermint/build/opus-1.1-beta/celt/vq.c:82: undefined reference to `cosf'
> /usr/local/lib/libopus.a(vq.o): In function `alg_quant':
> /home/peppermint/build/opus-1.1-beta/celt/vq.c:227: undefined reference to `floorf'
> /usr/local/lib/libopus.a(vq.o): In function `normalise_residual':
> /home/peppermint/build/opus-1.1-beta/celt/vq.c:126: undefined reference to `sqrtf'
> /usr/local/lib/libopus.a(vq.o): In function `renormalise_vector':
> /home/peppermint/build/opus-1.1-beta/celt/vq.c:366: undefined reference to `sqrtf'
> /usr/local/lib/libopus.a(vq.o): In function `stereo_itheta':
> /home/peppermint/build/opus-1.1-beta/celt/vq.c:411: undefined reference to `atan2'
> /home/peppermint/build/opus-1.1-beta/celt/vq.c:411: undefined reference to `floor'
> /home/peppermint/build/opus-1.1-beta/celt/vq.c:406: undefined reference to `sqrtf'
> /home/peppermint/build/opus-1.1-beta/celt/vq.c:405: undefined reference to `sqrtf'
> /usr/local/lib/libopus.a(bands.o): In function `intensity_stereo':
> /home/peppermint/build/opus-1.1-beta/celt/bands.c:349: undefined reference to `sqrtf'
> /usr/local/lib/libopus.a(bands.o): In function `compute_band_energies':
> /home/peppermint/build/opus-1.1-beta/celt/bands.c:165: undefined reference to `sqrtf'
> /usr/local/lib/libopus.a(bands.o): In function `denormalise_bands':
> /home/peppermint/build/opus-1.1-beta/celt/bands.c:229: undefined reference to `exp'
> /usr/local/lib/libopus.a(bands.o): In function `anti_collapse':
> /home/peppermint/build/opus-1.1-beta/celt/bands.c:272: undefined reference to `exp'
> /home/peppermint/build/opus-1.1-beta/celt/bands.c:309: undefined reference to `exp'
> /home/peppermint/build/opus-1.1-beta/celt/bands.c:273: undefined reference to `sqrt'
> /usr/local/lib/libopus.a(bands.o): In function `quant_band':
> /home/peppermint/build/opus-1.1-beta/celt/bands.c:1171: undefined reference to `sqrt'
> /usr/local/lib/libopus.a(bands.o): In function `stereo_merge':
> /home/peppermint/build/opus-1.1-beta/celt/bands.c:406: undefined reference to `sqrtf'
> /usr/local/lib/libopus.a(bands.o): In function `quant_band_stereo':
> /home/peppermint/build/opus-1.1-beta/celt/bands.c:408: undefined reference to `sqrtf'
> collect2: ld returned 1 exit status
> make[2]: *** [opusrtp] Error 1
> make[2]: Leaving directory `/home/peppermint/build/opus-tools-0.1.7'
> make[1]: *** [all-recursive] Error 1
> make[1]: Leaving directory `/home/peppermint/build/opus-tools-0.1.7'
> make: *** [all] Error 2
> peppermint at peppermint ~/build/opus-tools-0.1.7 $ 		 	   		  
> _______________________________________________
> opus mailing list
> opus at xiph.org
> http://lists.xiph.org/mailman/listinfo/opus
> 



More information about the opus mailing list