Bug 6089 - MinGW + Clang doesn't like Opus
Status: NEW
Alias: None
Product: ioquake3
Classification: Unclassified
Component: Misc
Version: GIT MASTER
Hardware: PC Windows NT
: P3 minor
Assignee: Zachary J. Slater
QA Contact: ioquake3 bugzilla mailing list
URL:
Depends on:
Blocks:
 
Reported: 2014-02-10 08:06 EST by Stig M. Halvorsen
Modified: 2021-11-02 15:31:35 EDT
1 user (show)

See Also:



Description Stig M. Halvorsen 2014-02-10 08:06:11 EST
Windows 7/8, MinGW, CC=clang. Clang v.3.4 (198054).

The linker (LD) throws multiple "Cannot export _opus_<function>: symbol not found" when compiling using Clang in MinGW, if you attempt to build after fixing this issue: https://bugzilla.icculus.org/show_bug.cgi?id=6088.

Setting USE_CODEC_OPUS=0 in my Makefile.local bypassses the Opus compilation and the build process completes successfully.

Total list of all errors:

-----------
LD build/release-mingw32-x86/ioquake3.x86.exe
Cannot export _opus_decode: symbol not found
Cannot export _opus_decode_float: symbol not found
Cannot export _opus_decoder_create: symbol not found
Cannot export _opus_decoder_ctl: symbol not found
Cannot export _opus_decoder_destroy: symbol not found
Cannot export _opus_decoder_get_nb_samples: symbol not found
Cannot export _opus_decoder_get_size: symbol not found
Cannot export _opus_decoder_init: symbol not found
Cannot export _opus_encode: symbol not found
Cannot export _opus_encode_float: symbol not found
Cannot export _opus_encoder_create: symbol not found
Cannot export _opus_encoder_ctl: symbol not found
Cannot export _opus_encoder_destroy: symbol not found
Cannot export _opus_encoder_get_size: symbol not found
Cannot export _opus_encoder_init: symbol not found
Cannot export _opus_get_version_string: symbol not found
Cannot export _opus_multistream_decode: symbol not found
Cannot export _opus_multistream_decode_float: symbol not found
Cannot export _opus_multistream_decoder_create: symbol not found
Cannot export _opus_multistream_decoder_ctl: symbol not found
Cannot export _opus_multistream_decoder_destroy: symbol not found
Cannot export _opus_multistream_decoder_get_size: symbol not found
Cannot export _opus_multistream_decoder_init: symbol not found
Cannot export _opus_multistream_encode: symbol not found
Cannot export _opus_multistream_encode_float: symbol not found
Cannot export _opus_multistream_encoder_create: symbol not found
Cannot export _opus_multistream_encoder_ctl: symbol not found
Cannot export _opus_multistream_encoder_destroy: symbol not found
Cannot export _opus_multistream_encoder_get_size: symbol not found
Cannot export _opus_multistream_encoder_init: symbol not found
Cannot export _opus_multistream_packet_pad: symbol not found
Cannot export _opus_multistream_packet_unpad: symbol not found
Cannot export _opus_multistream_surround_encoder_create: symbol not found
Cannot export _opus_multistream_surround_encoder_get_size: symbol not found
Cannot export _opus_multistream_surround_encoder_init: symbol not found
Cannot export _opus_packet_get_bandwidth: symbol not found
Cannot export _opus_packet_get_nb_channels: symbol not found
Cannot export _opus_packet_get_nb_frames: symbol not found
Cannot export _opus_packet_get_nb_samples: symbol not found
Cannot export _opus_packet_get_samples_per_frame: symbol not found
Cannot export _opus_packet_pad: symbol not found
Cannot export _opus_packet_parse: symbol not found
Cannot export _opus_packet_unpad: symbol not found
Cannot export _opus_pcm_soft_clip: symbol not found
Cannot export _opus_repacketizer_cat: symbol not found
Cannot export _opus_repacketizer_create: symbol not found
Cannot export _opus_repacketizer_destroy: symbol not found
Cannot export _opus_repacketizer_get_nb_frames: symbol not found
Cannot export _opus_repacketizer_get_size: symbol not found
Cannot export _opus_repacketizer_init: symbol not found
Cannot export _opus_repacketizer_out: symbol not found
Cannot export _opus_repacketizer_out_range: symbol not found
Cannot export _opus_strerror: symbol not found
collect2.exe: error: ld returned 1 exit status
clang.exe: error: linker (via gcc) command failed with exit code 1 (use -v to se
e invocation)
-----------