Android libVLC build: linker fails with various undefined references - c++

I'm trying to build libVLC for usage within an Android application (I can't find pre-built libs for all the platforms I am targeting). I am using Ubuntu 16.04.1 LTS server and am following the Android compile instructions and installed the packages mentioned there. I have the NDK r13 and SDK r24.4.1, essentially both freshly downloaded.
I started the process with ./compile.sh -a arm --release -l
Everything seems to compile correctly, but then I end up with linker errors. Here's the output starting from what seems most relevant:
Generating static module list
/home/builder/vlc-build/vlc-android/toolchains/arm/bin/arm-linux-androideabi-nm: libiconv.a: File format not recognized
/home/builder/vlc-build/vlc-android/toolchains/arm/bin/arm-linux-androideabi-objcopy:vlc/build-android-arm-linux-androideabi/modules/.libs/libgnutls_plugin.a(libiconv.a): Unable to recognise the format of file: File format not recognized
Package zlib was not found in the pkg-config search path.
Perhaps you should add the directory containing `zlib.pc'
to the PKG_CONFIG_PATH environment variable
Package 'zlib', required by '/libvncclient', not found
Building NDK
Android NDK: WARNING:jni/Android.mk:vlc: non-system libraries in linker flags: /home/builder/vlc-build/vlc-android/.modules/build-android-arm-linux-androideabi/libandroid_window_plugin.a /home/builder/vlc-build/vlc-android/.modules/build-android-arm-linux-androideabi/libadf_plugin.a /home/builder/vlc-build/vlc-android/.modules/build-android-arm-linux-androideabi/libsubsdec_plugin.a /home/builder/vlc-build/vlc-android/.modules/build-android-arm-linux-androideabi/libps_plugin.a /home/builder/vlc-build/vlc-android/.modules/build-android-arm-linux-androideabi/libkaraoke_plugin.a /home/builder/vlc-build/vlc-android/.modules/build-android-arm-linux-androideabi/libtaglib_plugin.a /home/builder/vlc-build/vlc-android/.modules/build-android-arm-linux-androideabi/liboldmovie_plugin.a /home/builder/vlc-build/vlc-android/.modules/build-android-arm-linux-androideabi/libconsole_logger_plugin.a /home/builder/vlc-build/vlc-android/.modules/build-android-arm-linux-androideabi/libshm_plugin.a /home/builder/vlc-build/vlc-android/.modules/build-android-arm-linux-androideabi/libcompressor_plugin.a /home/builder/vlc-build/vlc-android/.modules/build-android-arm-linux-androideabi/libcroppadd_plugin.a /home/builder/vlc-build/vlc-android/.modules/build-android-arm-linux-androideabi/libiomx_plugin.a /home/builder/vlc-build/vlc-android/.modules/build-android-arm-linux-androideabi/libchorus_flanger_plugin.a /home/builder/vlc-build/vlc-android/.modules/build-android-arm-linux-androideabi/libgles2_plugin.a /home/builder/vlc-build/vlc-android/.modules/build-android-arm-linux-androideabi/liboggspots_plugin.a /home/builder/vlc-build/vlc-android/.modules/build-android-arm-linux-androideabi/libnormvol_plugin.a /home/builder/vlc-build/vlc-android/.modules/build-android-arm-linux-androideabi/libstereo_widen_plugin.a /home/builder/vlc-build/vlc-android/.modules/build-android-arm-linux-androideabi/librtp_plugin.a /home/builder/vlc-build/vlc-android/.modules/build-android-arm-linux-androideabi/liblpcm_plugin.a /home/builder/vlc-build/vlc-android/.modules/build-android-arm-linux-androideabi/libspatializer_plugin.a /home/builder/vlc-build/vlc-android/.modules/build-android-arm-linux-androideabi/libes_plugin.a /home/builder/vlc-build/vlc-android/.modules/build-android-arm-linux-androideabi/libpostproc_plugin.a /home/builder/vlc-build/vlc-android/.modules/build-android-arm-linux-androideabi/libfps_plugin.a /home/builder/vlc-build/vlc-android/.modules/build-android-arm-linux-androideabi/libdemux_stl_plugin.a /home/builder/vlc-build/vlc-android/.modules/build-android-arm-linux-androideabi/libfreetype_plugin.a /home/builder/vlc-build/vlc-android/.modules/build-android-arm-linux-androideabi/libttml_plugin.a /home/builder/vlc-build/vlc-android/.modules/build-android-arm-linux-androideabi/libcache_block_plugin.a /home/builder/vlc-build/vlc-android/.modules/build-android-arm-linux-androideabi/libpacketizer_copy_plugin.a /home/builder/vlc-build/vlc-android/.modules/build-android-arm-linux-androideabi/libstl_plugin.a /home/builder/vlc-build/vlc-android/.modules/build-android-arm-linux-androideabi/libmemory_keystore_plugin.a /home/builder/vlc-build/vlc-android/.modules/build-android-arm-linux-androideabi/libpva_plugin.a /home/builder/vlc-build/vlc-android/.modules/build-android-arm-linux-androideabi/libflacsys_plugin.a /home/builder/vlc-build/vlc-android/.modules/build-android-arm-linux-androideabi/liblogo_plugin.a /home/builder/vlc-build/vlc-android/.modules/build-android-arm-linux-androideabi/librecord_plugin.a /home/builder/vlc-build/vlc-android/.modules/build-android-arm-linux-androideabi/libflac_plugin.a /home/builder/vlc-build/vlc-android/.modules/build-android-arm-linux-androideabi/libi420_nv12_plugin.a /home/builder/vlc-build/vlc-android/.modules/build-android-arm-linux-androideabi/libaes3_plugin.a /home/builder/vlc-build/vlc-android/.modules/build-android-arm-linux-androideabi/libtimecode_plugin.a /home/builder/vlc-build/vlc-android/.modules/build-android-arm-linux-androideabi/libdvdread_plugin.a /home/builder/vlc-build/vlc-android/.modules/build-android-arm-linux-androideabi/libsubsusf_plugin.a /home/builder/vlc-build/vlc-android/.modules/build-android-arm-linux-androideabi/libcc_plugin.a /home/builder/vlc-build/vlc-android/.modules/build-android-arm-linux-androideabi/libmarq_plugin.a /home/builder/vlc-build/vlc-android/.modules/build-android-arm-linux-androideabi/libwav_plugin.a /home/builder/vlc-build/vlc-android/.modules/build-android-arm-linux-androideabi/libdecomp_plugin.a /home/builder/vlc-build/vlc-android/.modules/build-android-arm-linux-androideabi/libpacketizer_mpegaudio_plugin.a /home/builder/vlc-build/vlc-android/.modules/build-android-arm-linux-androideabi/libi420_rgb_plugin.a /home/builder/vlc-build/vlc-android/.modules/build-android-arm-linux-androideabi/liblua_plugin.a /home/builder/vlc-build/vlc-android/.modules/build-android-arm-linux-androideabi/liba52_plugin.a /home/builder/vlc-build/vlc-android/.modules/build-android-arm-linux-androideabi/libxml_plugin.a /home/builder/vlc-build/vlc-android/.modules/build-android-arm-linux-androideabi/libcache_read_plugin.a /home/builder/vlc-build/vlc-android/.modules/build-android-arm-linux-androideabi/libdsm_plugin.a /home/builder/vlc-build/vlc-android/.modules/build-android-arm-linux-androideabi/libyuy2_i422_plugin.a /home/builder/vlc-build/vlc-android/.modules/build-android-arm-linux-androideabi/libadjust_plugin.a /home/builder/vlc-build/vlc-android/.modules/build-android-arm-linux-androideabi/libogg_plugin.a /home/builder/vlc-build/vlc-android/.modules/build-android-arm-linux-androideabi/libvhs_plugin.a /home/builder/vlc-build/vlc-android/.modules/build-android-arm-linux-androideabi/libgaussianblur_plugin.a /home/builder/vlc-build/vlc-android/.modules/build-android-arm-linux-androideabi/libegl_android_plugin.a /home/builder/vlc-build/vlc-android/.modules/build-android-arm-linux-androideabi/libpng_plugin.a /home/builder/vlc-build/vlc-android/.modules/build-android-arm-linux-androideabi/libts_plugin.a /home/builder/vlc-build/vlc-android/.modules/build-android-arm-linux-androideabi/librawvideo_plugin.a /home/builder/vlc-build/vlc-android/.modules/build-android-arm-linux-androideabi/libgnutls_plugin.a /home/builder/vlc-build/vlc-android/.modules/build-android-arm-linux-androideabi/libpacketizer_mpeg4video_plugin.a /home/builder/vlc-build/vlc-android/.modules/build-android-arm-linux-androideabi/libdummy_plugin.a /home/builder/vlc-build/vlc-android/.modules/build-android-arm-linux-androideabi/libsoxr_plugin.a /home/builder/vlc-build/vlc-android/.modules/build-android-arm-linux-androideabi/libtransform_plugin.a /home/builder/vlc-build/vlc-android/.modules/build-android-arm-linux-androideabi/libfile_keystore_plugin.a /home/builder/vlc-build/vlc-android/.modules/build-android-arm-linux-androideabi/libvolume_neon_plugin.a /home/builder/vlc-build/vlc-android/.modules/build-android-arm-linux-androideabi/libsubsdelay_plugin.a /home/builder/vlc-build/vlc-android/.modules/build-android-arm-linux-androideabi/libspeex_plugin.a /home/builder/vlc-build/vlc-android/.modules/build-android-arm-linux-androideabi/libremap_plugin.a /home/builder/vlc-build/vlc-android/.modules/build-android-arm-linux-androideabi/libpacketizer_mpegvideo_plugin.a /home/builder/vlc-build/vlc-android/.modules/build-android-arm-linux-androideabi/libvc1_plugin.a /home/builder/vlc-build/vlc-android/.modules/build-android-arm-linux-androideabi/libinvert_plugin.a /home/builder/vlc-build/vlc-android/.modules/build-android-arm-linux-androideabi/libftp_plugin.a /home/builder/vlc-build/vlc-android/.modules/build-android-arm-linux-androideabi/libpacketizer_dirac_plugin.a /home/builder/vlc-build/vlc-android/.modules/build-android-arm-linux-androideabi/libchain_plugin.a /home/builder/vlc-build/vlc-android/.modules/build-android-arm-linux-androideabi/libinteger_mixer_plugin.a /home/builder/vlc-build/vlc-android/.modules/build-android-arm-linux-androideabi/librotate_plugin.a /home/builder/vlc-build/vlc-android/.modules/build-android-arm-linux-androideabi/libaudio_format_plugin.a /home/builder/vlc-build/vlc-android/.modules/build-android-arm-linux-androideabi/libfile_logger_plugin.a /home/builder/vlc-build/vlc-android/.modules/build-android-arm-linux-androideabi/libmkv_plugin.a /home/builder/vlc-build/vlc-android/.modules/build-android-arm-linux-androideabi/libcaf_plugin.a /home/builder/vlc-build/vlc-android/.modules/build-android-arm-linux-androideabi/libau_plugin.a /home/builder/vlc-build/vlc-android/.modules/build-android-arm-linux-androideabi/libmediacodec_plugin.a /home/builder/vlc-build/vlc-android/.modules/build-android-arm-linux-androideabi/libvdr_plugin.a /home/builder/vlc-build/vlc-android/.modules/build-android-arm-linux-androideabi/libtelx_plugin.a /home/builder/vlc-build/vlc-android/.modules/build-android-arm-linux-androideabi/libcdg_plugin.a /home/builder/vlc-build/vlc-android/.modules/build-android-arm-linux-androideabi/libg711_plugin.a /home/builder/vlc-build/vlc-android/.modules/build-android-arm-linux-androideabi/libnfs_plugin.a /home/builder/vlc-build/vlc-android/.modules/build-android-arm-linux-androideabi/libfilesystem_plugin.a /home/builder/vlc-build/vlc-android/.modules/build-android-arm-linux-androideabi/libnsv_plugin.a /home/builder/vlc-build/vlc-android/.modules/build-android-arm-linux-androideabi/libmjpeg_plugin.a /home/builder/vlc-build/vlc-android/.modules/build-android-arm-linux-androideabi/liblibass_plugin.a /home/builder/vlc-build/vlc-android/.modules/build-android-arm-linux-androideabi/libvpx_plugin.a /home/builder/vlc-build/vlc-android/.modules/build-android-arm-linux-androideabi/libmono_plugin.a /home/builder/vlc-build/vlc-android/.modules/build-android-arm-linux-androideabi/libsubsttml_plugin.a /home/builder/vlc-build/vlc-android/.modules/build-android-arm-linux-androideabi/libsyslog_plugin.a /home/builder/vlc-build/vlc-android/.modules/build-android-arm-linux-androideabi/libpacketizer_hevc_plugin.a /home/builder/vlc-build/vlc-android/.modules/build-android-arm-linux-androideabi/libadpcm_plugin.a /home/builder/vlc-build/vlc-android/.modules/build-android-arm-linux-androideabi/libsatip_plugin.a /home/builder/vlc-build/vlc-android/.modules/build-android-arm-linux-androideabi/libvmem_plugin.a /home/builder/vlc-build/vlc-android/.modules/build-android-arm-linux-androideabi/liblive555_plugin.a /home/builder/vlc-build/vlc-android/.modules/build-android-arm-linux-androideabi/libpacketizer_avparser_plugin.a /home/builder/vlc-build/vlc-android/.modules/build-android-arm-linux-androideabi/libty_plugin.a /home/builder/vlc-build/vlc-android/.modules/build-android-arm-linux-androideabi/libhttp_plugin.a /home/builder/vlc-build/vlc-android/.modules/build-android-arm-linux-androideabi/libzvbi_plugin.a /home/builder/vlc-build/vlc-android/.modules/build-android-arm-linux-androideabi/libedgedetection_plugin.a /home/builder/vlc-build/vlc-android/.modules/build-android-arm-linux-androideabi/libwave_plugin.a /home/builder/vlc-build/vlc-android/.modules/build-android-arm-linux-androideabi/libcanvas_plugin.a /home/builder/vlc-build/vlc-android/.modules/build-android-arm-linux-androideabi/libimem_plugin.a /home/builder/vlc-build/vlc-android/.modules/build-android-arm-linux-androideabi/libsubstx3g_plugin.a /home/builder/vlc-build/vlc-android/.modules/build-android-arm-linux-androideabi/libsepia_plugin.a /home/builder/vlc-build/vlc-android/.modules/build-android-arm-linux-androideabi/libi420_yuy2_plugin.a /home/builder/vlc-build/vlc-android/.modules/build-android-arm-linux-androideabi/libvobsub_plugin.a /home/builder/vlc-build/vlc-android/.modules/build-android-arm-linux-androideabi/libyuv_rgb_neon_plugin.a /home/builder/vlc-build/vlc-android/.modules/build-android-arm-linux-androideabi/libgrey_yuv_plugin.a /home/builder/vlc-build/vlc-android/.modules/build-android-arm-linux-androideabi/libscaletempo_plugin.a /home/builder/vlc-build/vlc-android/.modules/build-android-arm-linux-androideabi/libspdif_plugin.a /home/builder/vlc-build/vlc-android/.modules/build-android-arm-linux-androideabi/libfluidsynth_plugin.a /home/builder/vlc-build/vlc-android/.modules/build-android-arm-linux-androideabi/libdvdnav_plugin.a /home/builder/vlc-build/vlc-android/.modules/build-android-arm-linux-androideabi/libparam_eq_plugin.a /home/builder/vlc-build/vlc-android/.modules/build-android-arm-linux-androideabi/libgain_plugin.a /home/builder/vlc-build/vlc-android/.modules/build-android-arm-linux-androideabi/libadaptive_plugin.a /home/builder/vlc-build/vlc-android/.modules/build-android-arm-linux-androideabi/libdemux_cdg_plugin.a /home/builder/vlc-build/vlc-android/.modules/build-android-arm-linux-androideabi/libupnp_plugin.a /home/builder/vlc-build/vlc-android/.modules/build-android-arm-linux-androideabi/librar_plugin.a /home/builder/vlc-build/vlc-android/.modules/build-android-arm-linux-androideabi/libpacketizer_mlp_plugin.a /home/builder/vlc-build/vlc-android/.modules/build-android-arm-linux-androideabi/libaccess_concat_plugin.a /home/builder/vlc-build/vlc-android/.modules/build-android-arm-linux-androideabi/libcolorthres_plugin.a /home/builder/vlc-build/vlc-android/.modules/build-android-arm-linux-androideabi/libcvdsub_plugin.a /home/builder/vlc-build/vlc-android/.modules/build-android-arm-linux-androideabi/libnsc_plugin.a /home/builder/vlc-build/vlc-android/.modules/build-android-arm-linux-androideabi/libxa_plugin.a /home/builder/vlc-build/vlc-android/.modules/build-android-arm-linux-androideabi/libplaylist_plugin.a /home/builder/vlc-build/vlc-android/.modules/build-android-arm-linux-androideabi/libdemuxdump_plugin.a /home/builder/vlc-build/vlc-android/.modules/build-android-arm-linux-androideabi/libi422_yuy2_plugin.a /home/builder/vlc-build/vlc-android/.modules/build-android-arm-linux-androideabi/libtospdif_plugin.a /home/builder/vlc-build/vlc-android/.modules/build-android-arm-linux-androideabi/libandroid_audiotrack_plugin.a /home/builder/vlc-build/vlc-android/.modules/build-android-arm-linux-androideabi/libinflate_plugin.a /home/builder/vlc-build/vlc-android/.modules/build-android-arm-linux-androideabi/libmpgv_plugin.a /home/builder/vlc-build/vlc-android/.modules/build-android-arm-linux-androideabi/libscte18_plugin.a /home/builder/vlc-build/vlc-android/.modules/build-android-arm-linux-androideabi/libavformat_plugin.a /home/builder/vlc-build/vlc-android/.modules/build-android-arm-linux-androideabi/libopensles_android_plugin.a /home/builder/vlc-build/vlc-android/.modules/build-android-arm-linux-androideabi/libflaschen_plugin.a /home/builder/vlc-build/vlc-android/.modules/build-android-arm-linux-androideabi/libprefetch_plugin.a /home/builder/vlc-build/vlc-android/.modules/build-android-arm-linux-androideabi/libmp4_plugin.a /home/builder/vlc-build/vlc-android/.modules/build-android-arm-linux-androideabi/libattachment_plugin.a /home/builder/vlc-build/vlc-android/.modules/build-android-arm-linux-androideabi/libhds_plugin.a /home/builder/vlc-build/vlc-android/.modules/build-android-arm-linux-androideabi/libugly_resampler_plugin.a /home/builder/vlc-build/vlc-android/.modules/build-android-arm-linux-androideabi/libmod_plugin.a /home/builder/vlc-build/vlc-android/.modules/build-android-arm-linux-androideabi/libfingerprinter_plugin.a /home/builder/vlc-build/vlc-android/.modules/build-android-arm-linux-androideabi/libaraw_plugin.a /home/builder/vlc-build/vlc-android/.modules/build-android-arm-linux-androideabi/libaccess_mms_plugin.a /home/builder/vlc-build/vlc-android/.modules/build-android-arm-linux-androideabi/libextract_plugin.a /home/builder/vlc-build/vlc-android/.modules/build-android-arm-linux-androideabi/libyuy2_i420_plugin.a /home/builder/vlc-build/vlc-android/.modules/build-android-arm-linux-androideabi/libzip_plugin.a /home/builder/vlc-build/vlc-android/.modules/build-android-arm-linux-androideabi/libdiracsys_plugin.a /home/builder/vlc-build/vlc-android/.modules/build-android-arm-linux-androideabi/libsvcdsub_plugin.a /home/builder/vlc-build/vlc-android/.modules/build-android-arm-linux-androideabi/libfreeze_plugin.a /home/builder/vlc-build/vlc-android/.modules/build-android-arm-linux-androideabi/libdvbsub_plugin.a /home/builder/vlc-build/vlc-android/.modules/build-android-arm-linux-androideabi/libamem_plugin.a /home/builder/vlc-build/vlc-android/.modules/build-android-arm-linux-androideabi/libscale_plugin.a /home/builder/vlc-build/vlc-android/.modules/build-android-arm-linux-androideabi/libtta_plugin.a /home/builder/vlc-build/vlc-android/.modules/build-android-arm-linux-androideabi/libblend_plugin.a /home/builder/vlc-build/vlc-android/.modules/build-android-arm-linux-androideabi/libh26x_plugin.a /home/builder/vlc-build/vlc-android/.modules/build-android-arm-linux-androideabi/librv32_plugin.a /home/builder/vlc-build/vlc-android/.modules/build-android-arm-linux-androideabi/libavi_plugin.a /home/builder/vlc-build/vlc-android/.modules/build-android-arm-linux-androideabi/libequalizer_plugin.a /home/builder/vlc-build/vlc-android/.modules/build-android-arm-linux-androideabi/libandroid_logger_plugin.a /home/builder/vlc-build/vlc-android/.modules/build-android-arm-linux-androideabi/libudp_plugin.a /home/builder/vlc-build/vlc-android/.modules/build-android-arm-linux-androideabi/libscte27_plugin.a /home/builder/vlc-build/vlc-android/.modules/build-android-arm-linux-androideabi/libavcodec_plugin.a /home/builder/vlc-build/vlc-android/.modules/build-android-arm-linux-androideabi/libyuvp_plugin.a /home/builder/vlc-build/vlc-android/.modules/build-android-arm-linux-androideabi/libavio_plugin.a /home/builder/vlc-build/vlc-android/.modules/build-android-arm-linux-androideabi/libfloat_mixer_plugin.a /home/builder/vlc-build/vlc-android/.modules/build-android-arm-linux-androideabi/libpacketizer_vc1_plugin.a /home/builder/vlc-build/vlc-android/.modules/build-android-arm-linux-androideabi/libaiff_plugin.a /home/builder/vlc-build/vlc-android/.modules/build-android-arm-linux-androideabi/libsdp_plugin.a /home/builder/vlc-build/vlc-android/.modules/build-android-arm-linux-androideabi/libdeinterlace_plugin.a /home/builder/vlc-build/vlc-android/.modules/build-android-arm-linux-androideabi/libchroma_yuv_neon_plugin.a /home/builder/vlc-build/vlc-android/.modules/build-android-arm-linux-androideabi/libaccess_realrtsp_plugin.a /home/builder/vlc-build/vlc-android/.modules/build-android-arm-linux-androideabi/libhttps_plugin.a /home/builder/vlc-build/vlc-android/.modules/build-android-arm-linux-androideabi/librawaud_plugin.a /home/builder/vlc-build/vlc-android/.modules/build-android-arm-linux-androideabi/libuleaddvaudio_plugin.a /home/builder/vlc-build/vlc-android/.modules/build-android-arm-linux-androideabi/libswscale_plugin.a /home/builder/vlc-build/vlc-android/.modules/build-android-arm-linux-androideabi/libasf_plugin.a /home/builder/vlc-build/vlc-android/.modules/build-android-arm-linux-androideabi/libvoc_plugin.a /home/builder/vlc-build/vlc-android/.modules/build-android-arm-linux-androideabi/libgradfun_plugin.a /home/builder/vlc-build/vlc-android/.modules/build-android-arm-linux-androideabi/libtrivial_channel_mixer_plugin.a /home/builder/vlc-build/vlc-android/.modules/build-android-arm-linux-androideabi/libmpg123_plugin.a /home/builder/vlc-build/vlc-android/.modules/build-android-arm-linux-androideabi/libaccess_archive_plugin.a /home/builder/vlc-build/vlc-android/.modules/build-android-arm-linux-androideabi/libmicrodns_plugin.a /home/builder/vlc-build/vlc-android/.modules/build-android-arm-linux-androideabi/librawdv_plugin.a /home/builder/vlc-build/vlc-android/.modules/build-android-arm-linux-androideabi/libhqdn3d_plugin.a /home/builder/vlc-build/vlc-android/.modules/build-android-arm-linux-androideabi/libi422_i420_plugin.a /home/builder/vlc-build/vlc-android/.modules/build-android-arm-linux-androideabi/libafile_plugin.a /home/builder/vlc-build/vlc-android/.modules/build-android-arm-linux-androideabi/libsimple_channel_mixer_plugin.a /home/builder/vlc-build/vlc-android/.modules/build-android-arm-linux-androideabi/libantiflicker_plugin.a /home/builder/vlc-build/vlc-android/.modules/build-android-arm-linux-androideabi/libpacketizer_dts_plugin.a /home/builder/vlc-build/vlc-android/.modules/build-android-arm-linux-androideabi/libheadphone_channel_mixer_plugin.a /home/builder/vlc-build/vlc-android/.modules/build-android-arm-linux-androideabi/libsftp_plugin.a /home/builder/vlc-build/vlc-android/.modules/build-android-arm-linux-androideabi/libvorbis_plugin.a /home/builder/vlc-build/vlc-android/.modules/build-android-arm-linux-androideabi/libpacketizer_flac_plugin.a /home/builder/vlc-build/vlc-android/.modules/build-android-arm-linux-androideabi/librawvid_plugin.a /home/builder/vlc-build/vlc-android/.modules/build-android-arm-linux-androideabi/libanaglyph_plugin.a /home/builder/vlc-build/vlc-android/.modules/build-android-arm-linux-androideabi/libtcp_plugin.a /home/builder/vlc-build/vlc-android/.modules/build-android-arm-linux-androideabi/libtheora_plugin.a /home/builder/vlc-build/vlc-android/.modules/build-android-arm-linux-androideabi/libspudec_plugin.a /home/builder/vlc-build/vlc-android/.modules/build-android-arm-linux-androideabi/libopus_plugin.a /home/builder/vlc-build/vlc-android/.modules/build-android-arm-linux-androideabi/libnuv_plugin.a /home/builder/vlc-build/vlc-android/.modules/build-android-arm-linux-androideabi/libdolby_surround_decoder_plugin.a /home/builder/vlc-build/vlc-android/.modules/build-android-arm-linux-androideabi/libpacketizer_h264_plugin.a /home/builder/vlc-build/vlc-android/.modules/build-android-arm-linux-androideabi/libi420_10_p010_plugin.a /home/builder/vlc-build/vlc-android/.modules/build-android-arm-linux-androideabi/libimage_plugin.a /home/builder/vlc-build/vlc-android/.modules/build-android-arm-linux-androideabi/libandroid_native_window_plugin.a /home/builder/vlc-build/vlc-android/.modules/build-android-arm-linux-androideabi/libfolder_plugin.a /home/builder/vlc-build/vlc-android/.modules/build-android-arm-linux-androideabi/libjpeg_plugin.a /home/builder/vlc-build/vlc-android/.modules/build-android-arm-linux-androideabi/libpacketizer_mpeg4audio_plugin.a /home/builder/vlc-build/vlc-android/.modules/build-android-arm-linux-androideabi/libsubtitle_plugin.a /home/builder/vlc-build/vlc-android/.modules/build-android-arm-linux-androideabi/libpacketizer_a52_plugin.a /home/builder/vlc-build/vlc-android/vlc/build-android-arm-linux-androideabi/lib/.libs/libvlc.a /home/builder/vlc-build/vlc-android/vlc/build-android-arm-linux-androideabi/src/.libs/libvlccore.a /home/builder/vlc-build/vlc-android/vlc/build-android-arm-linux-androideabi/compat/.libs/libcompat.a -ldvdnav -ldvdread -ldvdcss -ldvdread -ldvdcss -lFLAC -logg -lfluidlite -lvorbisfile -lvorbis -logg -lfreetype -lfribidi -lgnutls /home/builder/vlc-build/vlc-android/vlc/contrib/arm-linux-androideabi/lib/libiconv.a -lgmp -lharfbuzz -lhogweed -lgmp -lnettle -larchive -lass -liconv -lfribidi -lfreetype -lavcodec -lopenjpeg -lgsm -lavutil -lavformat -lopenjpeg -lgsm -lavcodec -lopenjpeg -lgsm -lavutil -lavutil -ldsm -ldvbpsi -ldvdcss -lebml -lmatroska -lebml -lmodplug -lmpg123 -lnfs -lpng16 -lpng16 -lpostproc -lavutil -lssh2 -lgcrypt -lgpg-error -lswscale -lavutil -ltasn1 -lupnp -lthreadutil -lixml -lxml2 -lmicrodns -lnettle -logg -lopus -lprotobuf-lite -lprotobuf -lsoxr -lspeexdsp -lspeex -ltag_c -ltag -ltag -ltheoradec -logg -ltheoraenc -ltheoradec -logg -ltheora -logg -lvorbisenc -lvorbisfile -lvorbis -logg -lvpx -lzvbi -liconv -lpng -lliveMedia -lUsageEnvironment -lBasicUsageEnvironment -lgroupsock -la52 -ljpeg -lavcodec -lebml -llua -lc++abi -landroid_support
Android NDK: This is likely to result in incorrect builds. Try using LOCAL_STATIC_LIBRARIES
Android NDK: or LOCAL_SHARED_LIBRARIES instead to list the library dependencies of the
Android NDK: current module
make: Entering directory `/home/builder/vlc-build/vlc-android/libvlc'
[armeabi-v7a] Compile thumb : vlc <= libvlcjni-modules.c
[armeabi-v7a] Compile thumb : vlc <= libvlcjni-symbols.c
[armeabi-v7a] Compile++ thumb: vlc <= dummy.cpp
[armeabi-v7a] Prebuilt : libc++_shared.so <= <NDK>/sources/cxx-stl/llvm-libc++/libs/armeabi-v7a/
[armeabi-v7a] SharedLibrary : libvlc.so
../../modules/lua/vlc.c:219: error: undefined reference to 'config_GetLibDir'
../../modules/lua/vlc.c:229: error: undefined reference to 'config_GetDataDir'
../../modules/lua/libs/configuration.c:110: error: undefined reference to 'config_GetDataDir'
../../modules/arm_neon/volume.c:49: error: undefined reference to 'vlc_CPU'
../../modules/arm_neon/yuv_rgb.c:137: error: undefined reference to 'vlc_CPU'
../../modules/video_filter/deinterlace/deinterlace.c:696: error: undefined reference to 'vlc_CPU'
../../modules/arm_neon/chroma_yuv.c:220: error: undefined reference to 'vlc_CPU'
../../src/misc/threads.c:89: error: undefined reference to 'vlc_addr_timedwait'
../../src/misc/threads.c:148: error: undefined reference to 'vlc_addr_signal'
../../src/misc/threads.c:154: error: undefined reference to 'vlc_addr_broadcast'
../../src/misc/threads.c:173: error: undefined reference to 'vlc_addr_wait'
../../src/misc/threads.c:197: error: undefined reference to 'vlc_addr_timedwait'
../../src/misc/threads.c:148: error: undefined reference to 'vlc_addr_signal'
../../src/misc/threads.c:154: error: undefined reference to 'vlc_addr_broadcast'
../../src/misc/threads.c:148: error: undefined reference to 'vlc_addr_signal'
../../src/misc/messages.c:121: error: undefined reference to 'vlc_thread_id'
../../src/android/thread.c:321: error: undefined reference to 'vlc_addr_broadcast'
clang++: error: linker command failed with exit code 1 (use -v to see invocation)
make: *** [jni/obj/local/armeabi-v7a/libvlc.so] Error 1
make: Leaving directory `/home/builder/vlc-build/vlc-android/libvlc'
ndk-build failed for libvlc
There's a few things worrying in there like the warning about non-system libraries (but isn't that expected since it is a cross-compile?) but they don't seem to connect to the issue.
I can't seem to find anything relevant in Google nor on Stackoverflow (except maybe this question and answer hinting perhaps I should try an older version of the NDK?) as these seem to all be functionality provided by VLC itself. As a result I'm also not sure where to look in the compile process' logs or output to find other hints of things being awry. What else should I post?

I'm rather late to the party but posting anyways.
Package zlib was not found in the pkg-config search path.
Missing dependencies surface as totally irrelevant errors sadly.

Related

Undefined Reference when linking FMOD library on linux

I am creating a simple game on linux in C++ and using FMOD for the sound. I recently downloaded the latest FMOD API however when I try to use it I get an undefined reference error. From what I can see with other related questions it usually has to do with where the -lfmod tag is when compiling, however no matter where I put that tag I still encounter problems.
I followed the Debian instructions for downloading the FMOD api and library.
https://wiki.debian.org/FMOD
However when the -I/usr/local/include -L/usr/local/lib didn't work I moved all the library and header files to local folders and adjusted accordingly.
I am using Debian on x86_64 architecture, if that helps.
I also followed these instructions here
https://www.fmod.com/docs/api/content/generated/platform_linux/basics.html
And using ldconfig I was able to verify that I do have libasound.so.2 downloaded in /usr/lib/x86_64-linux-gnu/
I am aware of this answer
C++:Undefined reference to 'FMOD:: X'
but because I am compiling using G++ and the FMOD linux libraries were compiled using GCC I don't think there should be a problem.
Here is the error I get when compiling.
g++ -c audioEngine.cpp
g++ driver.o game.o uiInteract.o uiDraw.o audioEngine.o point.o velocity.o flyingObject.o ship.o bullet.o rocks.o pause.o keyBind.o asteroid.o -I/usr/local/include -L/usr/local/lib -lfmod -lglut -lGLU -lGL
audioEngine.o: In function `Implementation::Implementation()':
audioEngine.cpp:(.text+0x67): undefined reference to `FMOD::Studio::System::create(FMOD::Studio::System**, unsigned int)'
audioEngine.cpp:(.text+0x92): undefined reference to `FMOD::Studio::System::initialize(int, unsigned int, unsigned int, void*)'
audioEngine.cpp:(.text+0xbf): undefined reference to `FMOD::Studio::System::getLowLevelSystem(FMOD::System**) const'
audioEngine.o: In function `Implementation::~Implementation()':
audioEngine.cpp:(.text+0x13b): undefined reference to `FMOD::Studio::System::unloadAll()'
audioEngine.cpp:(.text+0x151): undefined reference to `FMOD::Studio::System::release()'
audioEngine.o: In function `Implementation::advance()':
audioEngine.cpp:(.text+0x2cf): undefined reference to `FMOD::Studio::System::update()'
collect2: error: ld returned 1 exit status
makefile:21: recipe for target 'a.out' failed
make: *** [a.out] Error 1
Here are the problem areas in audioEngine.cpp
In the header file "fmod.hpp" and "fmod_studio.hpp" are included.
Implementation::Implementation()
{
mpStudioSystem = NULL;
AudioEngine::ErrorCheck(FMOD::Studio::System::create(&mpStudioSystem));
AudioEngine::ErrorCheck(mpStudioSystem->initialize(32, FMOD_STUDIO_INIT_LIVEUPDATE, FMOD_INIT_PROFILE_ENABLE, NULL));
mpSystem = NULL;
AudioEngine::ErrorCheck(mpStudioSystem->getLowLevelSystem(&mpSystem));
}
Implementation::~Implementation()
{
AudioEngine::ErrorCheck(mpStudioSystem->unloadAll());
AudioEngine::ErrorCheck(mpStudioSystem->release());
}
void Implementation::advance()
{
vector<ChannelMap::iterator> pStoppedChannels;
for (auto it = mChannels.begin(), itEnd = mChannels.end(); it != itEnd; ++it)
{
bool bIsPlaying = false;
it->second->isPlaying(&bIsPlaying);
if (!bIsPlaying)
{
pStoppedChannels.push_back(it);
}
}
for (auto& it : pStoppedChannels)
{
mChannels.erase(it);
}
AudioEngine::ErrorCheck(mpStudioSystem->update());
}
Here is the relevant part of the makefile
LFLAGS = -I./include -L./lib -lfmod -lglut -lGLU -lGL
###############################################################
# Build the main game
###############################################################
a.out: driver.o game.o uiInteract.o uiDraw.o audioEngine.o point.o velocity.o flyingObject.o ship.o bullet.o rocks.o pause.o keyBind.o asteroid.o
g++ driver.o game.o uiInteract.o uiDraw.o audioEngine.o point.o velocity.o flyingObject.o ship.o bullet.o rocks.o pause.o keyBind.o asteroid.o $(LFLAGS)
The .so library files are in a "lib" folder in the project folder where the makefile is, and the .h and .hpp files are in an "include" folder in the same place.
I realized the answer to this question moments before posting, but I spent enough time trying to figure it out I'm posing anyway for future reference if anyone else follows the Debian instructions and wonders why they get an undefined reference.
If you are including the "fmod_studio.hpp" file you also need to include the fmod studio library. Add -lfmodstudio after -lfmod and provided you have everything else right it will now compile without an undefined reference.
The solution is so obvious I feel like an idiot. Of course if I want fmodstudio I need to include the fmodstudio library! It's like I was flooring the accelerator without an engine then checking the oil.

Qt Creator: Release build won't compile

I've written a relatively simple Qt program that I'm trying to compile for windows with MinGW under Qt Creator. The Debug version builds and runs without problem, but when I try to build the Release version I get these errors
main.cpp:-1: error: undefined reference to `_imp___ZN12QApplicationC1ERiPPci'
main.cpp:-1: error: undefined reference to `_imp___ZN7QWidget4showEv'
main.cpp:-1: error: undefined reference to `_imp___ZN12QApplication4execEv'
main.cpp:-1: error: undefined reference to `_imp___ZN12QApplicationD1Ev'
main.cpp:-1: error: undefined reference to `_imp___ZN12QApplicationD1Ev'
:-1: error: release/main.o: bad reloc address 0x13 in section `.eh_frame'
collect2.exe:-1: error: error: ld returned 1 exit status
The errors seem to suggest that one or more of the core Qt libraries cannot be found, however, the .pro file contains the line QT += core gui widgets and there is nothing Debug/Release specific. I've tried cleaning/rebuilding the project and restarting Qt Creator, to no avail. I have no problems compiling Release builds for other projects. I'm using Qt version 5.2.1. Any ideas?
Update:
I've singled out this line in the .pro file as the cause
win32: LIBS += -L"C:/Program Files (x86)/MATLAB/R2015b/bin/win32" -llibmat -llibmx
Inside the makefile I see this
LIBS = -lglu32 -lopengl32 -lgdi32 -luser32 -lmingw32 -lqtmain "-LC:/Program Files (x86)/MATLAB/R2015b/bin/win32" -llibmat -llibmx -LC:\Qt\Qt5.2.1\5.2.1\mingw48_32\lib -lQt5Widgets -lQt5Gui -lQt5Core
I suspect the problem lies in the order in which the link libraries are listed in the makefile. I vaguely recall encountering a similar problem in the past. How can I force qmake to place the Matlab libraries at the end of the list?

OpenCV undefined reference to `vtable for cv::HOGDescriptor'

I'm trying to compile my own object detector by using OpenCV 3 hog and svm over Eclipse CDT but when compiling the console returns the following:
Building target: HogDetection
Invoking: GCC C++ Linker
g++ -L/usr/local/lib -o "HogDetection" ./main.o ./phog.o ./psvm.o -lopencv_core -lopencv_imgcodecs -lopencv_highgui -lopencv_ml
./phog.o: In function `cv::HOGDescriptor::HOGDescriptor()':
/usr/local/include/opencv2/objdetect.hpp:348: undefined reference to `vtable for cv::HOGDescriptor'
./phog.o: In function `cv::HOGDescriptor::~HOGDescriptor()':
/usr/local/include/opencv2/objdetect.hpp:372: undefined reference to `vtable for cv::HOGDescriptor'
collect2: error: ld returned 1 exit status
make: *** [HogDetection] Error 1
Probably I'm doing something wrong with the libraries but since I'm new both to c++ and OpenCV I followed a tutorial to set up eclipse CDT with openCV and I was able to run other simple tutorials (those on openCV websites like display image and so on...).
I also read something on wikipedia about vtable and here but it was not sufficient for me to understand what's happening here.
Thanks in advance.
I solved the problem by adding to the gcc c++ linker libraries the library opencv_objdetect
Well if you are working with make files then just add
LIBS += -L/usr/local/libs \
-lopencv_objdetect \
or if you are not having makefile then just run code like
g++ -Wall main.cpp /usr/lib/libopencv_objdetect.a -o main

c++ files to include for boost : asio

I'm following this tutorial however it does not state which libaries I need to include in order to get boost to work,current options for links are:
-I/usr/include/opencv2 -I/usr/include/boost_1_55_0 -I/usr/include/boost_1_55_0/boost -O0 -g3 -Wall -c -fmessage-length=0
however this returns the following erro:
which states that it can't find asio, am I doing something wrong or was assio the wrong library to link to? Or is there any other way to find out. Note that this is my 2nd c++ project(through I have a lot of java experience) and first with the heavy use of libraries so details are somewhat required.
Removing boost/asio gave me the following errors:
make all
Building target: DisplayImage
Invoking: GCC C++ Linker
g++ -L/usr/include/opencv2 -L/usr/include/boost_1_55_0/boost -L/usr/include/boost_1_55_0 -L/usr/include/opencv2 -L/usr/lib -o "DisplayImage" ./src/Cap.o ./src/DisplayImage.o ./src/Filters.o ./src/sender.o -lopencv_imgproc -lopencv_highgui -lopencv_core
./src/sender.o: In function `__static_initialization_and_destruction_0':
/usr/include/boost_1_55_0/boost/system/error_code.hpp:222: undefined reference to `boost::system::generic_category()'
/usr/include/boost_1_55_0/boost/system/error_code.hpp:223: undefined reference to `boost::system::generic_category()'
/usr/include/boost_1_55_0/boost/system/error_code.hpp:224: undefined reference to `boost::system::system_category()'
./src/sender.o: In function `error_code':
/usr/include/boost_1_55_0/boost/system/error_code.hpp:323: undefined reference to `boost::system::system_category()'
./src/sender.o: In function `boost::asio::error::get_system_category()':
/usr/include/boost_1_55_0/boost/asio/error.hpp:224: undefined reference to `boost::system::system_category()'
collect2: ld returned 1 exit status
make: *** [DisplayImage] Error 1
Build Finished **
I use an ubuntu (x64) laptop if it matters.
Most of boost is implemented in what's called "header-only" code. Through the generous use of C++ templates, there is no actual library code to which your code needs to link. However, there are, as you've seen some actual libraries as well. Generally, the help you seek is probably here: http://www.boost.org/doc/libs/1_55_0/more/getting_started/unix-variants.html#link-your-program-to-a-boost-library
Your particular program uses the timer and system libraries and so you can probably use this command line to link your program:
g++ timer.cpp -o timer -lboost_timer -lboost_system
You can look at the bjam in boost/libs/asio/example/cpp03/tutorial/Jamfile.v2:
project
: requirements
<library>/boost/system//boost_system
<library>/boost/thread//boost_thread
<define>BOOST_ALL_NO_LIB=1
<threading>multi
<os>SOLARIS:<library>socket
<os>SOLARIS:<library>nsl
<os>NT:<define>_WIN32_WINNT=0x0501
<os>NT,<toolset>gcc:<library>ws2_32
<os>NT,<toolset>gcc:<library>mswsock
<os>NT,<toolset>gcc-cygwin:<define>__USE_W32_SOCKETS
<os>HPUX,<toolset>gcc:<define>_XOPEN_SOURCE_EXTENDED
<os>HPUX:<library>ipv6
;
You can see that they build all the tutorial steps with
-lboost_system -lboost_thread -DBOOST_ALL_NO_LIB=1
on linux

Compile OpenGL application from Windows on Linux

My friend made OpenGL graphic engine, but he is working on Windows. I want to compile project with it.
I installed all required libs with headers, but now problem is with linking (project in Code::Blocks). I found paths for /usr/lib/libSOIL.a and /usr/local/lib/libglfw3.a, but what about:
C:\Program Files (x86)\CodeBlocks\MinGW\lib\libopengl32.a
C:\Program Files (x86)\CodeBlocks\MinGW\lib\assimp_debug-dll_win32\assimp.lib
Also, what I must modify in project file to compile it? It requires: glfw3, glm, gl3w.h, assimp, SOIL (this is what I get from .hpp files). I installed all headers (downloaded sources and make && make install)...
I tried to compile it from terminal with g++, but I don't know switches for libraries.
Current situation:
$ g++ Camera.o Entity.o Frustum.o gl3w.o Light.o Material.o Mesh.o Model.o ModelPart.o Shader.o Texture.o Utilities.o ../main.o -o main -L/usr/local/lib/libglfw3.a -lX11 -lXext -lXt -lSM -lGLU -lglut -lSOIL
/usr/bin/ld: gl3w.o: undefined reference to symbol 'glXGetProcAddress'
/usr/bin/ld: note: 'glXGetProcAddress' is defined in DSO /usr/lib/nvidia-313-updates/libGL.so.1 so try adding it to the linker command line
/usr/lib/nvidia-313-updates/libGL.so.1: could not read symbols: Invalid operation
collect2: error: ld returned 1 exit status
(i added too much libraries to command line, I know)
EDIT
Added -lGL and -ldl and some problems comes out. Now, I'll trying compile it with makefile...
libopengl32 -> libGL.a
assimp -> libassimp.a ?
You gotta provide the Makefile you're compiling it with.