Hi Is it possible to cross-compile opus-tools with mingw and Ubuntu? So far I have done this:- # prepare $ mkdir $HOME/source $ mkdir $HOME/builds $ export PATH="$PATH:$HOME/mingw-w64-i686/bin" $ PKG_CONFIG_PATH="$HOME/builds/lib/pkgconfig" # Install ogg $ cd $HOME/source $ svn co http://svn.xiph.org/trunk/ogg $ cd ogg $ ./autogen.sh && ./configure --prefix=$HOME/builds --host=i686-w64-mingw32 --disable-shared $ make && make install # Install opus $ cd $HOME/source $ git clone --depth 1 git://git.xiph.org/opus.git $ cd opus $ ./autogen.sh && ./configure --prefix=$HOME/builds --host=i686-w64-mingw32 --disable-shared $ make && make install # Try to compile opus-tools $ cd $HOME/source $ git clone --depth 1 git://git.xiph.org/opus-tools.git $ cd opus-tools $ ./autogen.sh && ./configure --prefix=$HOME/builds --host=i686-w64-mingw32 But if I now run "make" it throws up errors as below. Any ideas what is causing this? Am I missing some other libraries? ******************************************************************* Type "make; make install" to compile and install Type "make check" to run the test suite make? all-recursive make[1]: Entering directory `/home/user/source/opus-tools' Making all in . make[2]: Entering directory `/home/user/source/opus-tools' ? CC???? src/opus_header.o ? CC???? src/opusenc.o ? CC???? src/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/audio-in.o ? CC???? src/diag_range.o ? CC???? src/lpc.o ? CC???? win32/unicode_support.o ? CCLD?? opusenc.exe src/opusenc.o: In function `main': /home/user/source/opus-tools/src/opusenc.c:301: undefined reference to `opus_get_version_string' /home/user/source/opus-tools/src/opusenc.c:566: undefined reference to `opus_multistream_encoder_create' /home/user/source/opus-tools/src/opusenc.c:577: undefined reference to `opus_multistream_encoder_ctl' /home/user/source/opus-tools/src/opusenc.c:578: undefined reference to `opus_encoder_ctl' /home/user/source/opus-tools/src/opusenc.c:580: undefined reference to `opus_strerror' /home/user/source/opus-tools/src/opusenc.c:596: undefined reference to `opus_multistream_encoder_ctl' /home/user/source/opus-tools/src/opusenc.c:602: undefined reference to `opus_multistream_encoder_ctl' /home/user/source/opus-tools/src/opusenc.c:609: undefined reference to `opus_multistream_encoder_ctl' /home/user/source/opus-tools/src/opusenc.c:616: undefined reference to `opus_multistream_encoder_ctl' /home/user/source/opus-tools/src/opusenc.c:622: undefined reference to `opus_multistream_encoder_ctl' src/opusenc.o:/home/user/source/opus-tools/src/opusenc.c:629: more undefined references to `opus_multistream_encoder_ctl' follow src/opusenc.o: In function `main': /home/user/source/opus-tools/src/opusenc.c:631: undefined reference to `opus_strerror' /home/user/source/opus-tools/src/opusenc.c:646: undefined reference to `opus_multistream_encoder_ctl' /home/user/source/opus-tools/src/opusenc.c:647: undefined reference to `opus_encoder_ctl' /home/user/source/opus-tools/src/opusenc.c:639: undefined reference to `opus_multistream_encoder_ctl' /home/user/source/opus-tools/src/opusenc.c:641: undefined reference to `opus_strerror' /home/user/source/opus-tools/src/opusenc.c:659: undefined reference to `opus_multistream_encoder_ctl' /home/user/source/opus-tools/src/opusenc.c:712: undefined reference to `ogg_stream_init' /home/user/source/opus-tools/src/opusenc.c:727: undefined reference to `ogg_stream_packetin' /home/user/source/opus-tools/src/opusenc.c:729: undefined reference to `ogg_stream_flush' /home/user/source/opus-tools/src/opusenc.c:746: undefined reference to `ogg_stream_packetin' /home/user/source/opus-tools/src/opusenc.c:750: undefined reference to `ogg_stream_flush' /home/user/source/opus-tools/src/opusenc.c:796: undefined reference to `opus_multistream_encode_float' /home/user/source/opus-tools/src/opusenc.c:814: undefined reference to `opus_multistream_encoder_ctl' /home/user/source/opus-tools/src/opusenc.c:815: undefined reference to `opus_encoder_ctl' /home/user/source/opus-tools/src/opusenc.c:864: undefined reference to `ogg_stream_packetin' /home/user/source/opus-tools/src/opusenc.c:878: undefined reference to `ogg_stream_flush_fill' /home/user/source/opus-tools/src/opusenc.c:881: undefined reference to `ogg_page_packets' /home/user/source/opus-tools/src/opusenc.c:881: undefined reference to `ogg_page_granulepos' /home/user/source/opus-tools/src/opusenc.c:828: undefined reference to `ogg_stream_flush_fill' /home/user/source/opus-tools/src/opusenc.c:830: undefined reference to `ogg_page_packets' /home/user/source/opus-tools/src/opusenc.c:830: undefined reference to `ogg_page_granulepos' /home/user/source/opus-tools/src/opusenc.c:879: undefined reference to `ogg_stream_pageout_fill' /home/user/source/opus-tools/src/opusenc.c:798: undefined reference to `opus_strerror' /home/user/source/opus-tools/src/opusenc.c:955: undefined reference to `opus_multistream_encoder_destroy' /home/user/source/opus-tools/src/opusenc.c:956: undefined reference to `ogg_stream_clear' /home/user/source/opus-tools/src/opusenc.c:674: undefined reference to `opus_multistream_encoder_ctl' /home/user/source/opus-tools/src/opusenc.c:661: undefined reference to `opus_strerror' /home/user/source/opus-tools/src/opusenc.c:569: undefined reference to `opus_strerror' /home/user/source/opus-tools/src/opusenc.c:611: undefined reference to `opus_strerror' /home/user/source/opus-tools/src/opusenc.c:604: undefined reference to `opus_strerror' /home/user/source/opus-tools/src/opusenc.c:598: undefined reference to `opus_strerror' src/opusenc.o:/home/user/source/opus-tools/src/opusenc.c:624: more undefined references to `opus_strerror' follow src/diag_range.o: In function `opus_packet_parse_impl': /home/user/source/opus-tools/src/diag_range.c:87: undefined reference to `opus_packet_get_samples_per_frame' src/diag_range.o: In function `save_range': /home/user/source/opus-tools/src/diag_range.c:237: undefined reference to `opus_packet_get_samples_per_frame' /home/user/source/opus-tools/src/diag_range.c:239: undefined reference to `opus_packet_get_bandwidth' collect2: error: ld returned 1 exit status make[2]: *** [opusenc.exe] Error 1 make[2]: Leaving directory `/home/user/source/opus-tools' make[1]: *** [all-recursive] Error 1 make[1]: Leaving directory `/home/user/source/opus-tools' make: *** [all] Error 2 user at xubuntu:~/source/opus-tools$
On 12-10-19 4:02 PM, bat guano wrote:> Is it possible to cross-compile opus-tools with mingw and Ubuntu?Certainly. I've done it on fedora.> CCLD opusenc.exe > src/opusenc.o: In function `main': > /home/user/source/opus-tools/src/opusenc.c:301: undefined reference to `opus_get_version_string' > ... > /home/user/source/opus-tools/src/opusenc.c:712: undefined reference to `ogg_stream_init'The linker isn't finding the libopus and libogg you built. Try re-running with 'make V=1' to get the actual link line and verify that the paths are correct. -r
bat guano wrote:>> Now make V=1 shows a different error. >> "src/opusrtp.c:53:24: fatal error: sys/socket.h: No such file or directory" >> >> Any ideas? >> > Hi > > It has cross-compiled OK when I used release code. > From here ---> downloads.xiph.org/releases/opus/opus-tools-0.1.5.tar.gzThe latest git has added an RTP transmitter utility, which requires system socket libraries Windows does not have. Currently there is no configuration option to disable it.