Linker errors when building with video enabled on 2.7.2

TP
Taylor Prins
Fri, Aug 2, 2019 1:25 PM

I'm attempting to build pjsip 2.7.2 with video enabled for an embedded application.  When attempting to build, I always end up with linker errors when pj attempts to build the video tests files.  The build environment I'm using is buildroot on Fedora 27.  I have a full build log that I can post if needed.

For reference, here is my config:
./configure --target=arm-buildroot-linux-gnueabihf --host=arm-buildroot-linux-gnueabihf --build=x86_64-pc-linux-gnu --prefix=/usr --exec-prefix=/usr --sysconfdir=/etc --localstatedir=/var --program-prefix="" --disable-gtk-doc --disable-gtk-doc-html --disable-doc --disable-docs --disable-documentation --with-xmlto=no --with-fop=no --disable-dependency-tracking --enable-ipv6 --enable-nls --disable-static --enable-shared  --disable-ipp --disable-silk --with-external-srtp --enable-gpl --enable-libx264 --enable-video --with-sdl=/home/linuxbuild/build/ecos_init/ecos/output/root/host/arm-buildroot-linux-gnueabihf/sysroot/usr --with-openh264=/home/linuxbuild/build/ecos_init/ecos/output/root/host/arm-buildroot-linux-gnueabihf/sysroot/usr --enable-epoll --with-ssl --disable-oss --with-ffmpeg=/home/linuxbuild/build/ecos_init/ecos/output/root/host/arm-buildroot-linux-gnueabihf/sysroot/usr --with-bcg729=/home/linuxbuild/build/ecos_init/ecos/output/root/host/arm-buildroot-linux-gnueabihf/sysroot/usr --with-external-gsm --disable-opencore-amr --with-external-speex

Build failure:
...
if test ! -d ../bin; then mkdir -p ../bin; fi
/home/linuxbuild/build/ecos_init/ecos/output/root/host/bin/arm-linux-gcc -o ../bin/pjmedia-test-arm-buildroot-linux-gnueabihf
output/pjmedia-test-arm-buildroot-linux-gnueabihf/codec_vectors.o  output/pjmedia-test-arm-buildroot-linux-gnueabihf/jbuf_test.o  output/pjmedia-test-arm-buildroot-linux-gnueabihf/main.o  output/pjmedia-test-arm-buildroot-linux-gnueabihf/mips_test.o  output/pjmedia-test-arm-buildroot-linux-gnueabihf/vid_codec_test.o  output/pjmedia-test-arm-buildroot-linux-gnueabihf/vid_dev_test.o  output/pjmedia-test-arm-buildroot-linux-gnueabihf/vid_port_test.o  output/pjmedia-test-arm-buildroot-linux-gnueabihf/rtp_test.o  output/pjmedia-test-arm-buildroot-linux-gnueabihf/test.o  output/pjmedia-test-arm-buildroot-linux-gnueabihf/sdp_neg_test.o -lpjmedia-codec -lpjmedia-videodev -lpjmedia-audiodev -lpjmedia -lpjnath -lpjlib-util -lpj  -lresample -lilbccodec -lg7221codec -lyuv -lwebrtc  -lsrtp -lgsm -lspeex -lspeexdsp  -L/home/linuxbuild/build/ecos_init/ecos/output/root/host/arm-buildroot-linux-gnueabihf/sysroot/usr/lib -L/home/linuxbuild/build/ecos_init/ecos/output/root/host/arm-buildroot-linux-gnueabihf/sysroot/usr/lib  -Lyes/lib -lbcg729 -lopus -lssl -lcrypto -lopenh264 -lstdc++ -luuid -lm -lrt -lpthread  -lasound  -L/home/linuxbuild/build/ecos_init/ecos/output/root/host/bin/../arm-buildroot-linux-gnueabihf/sysroot/usr/lib -lavdevice -lavformat -lavcodec  -lavutil  -lv4l2  -L/home/linuxbuild/build/ecos_init/ecos/output/root/build/libpjsip-2.7.2/pjlib/lib -L/home/linuxbuild/build/ecos_init/ecos/output/root/build/libpjsip-2.7.2/pjlib-util/lib -L/home/linuxbuild/build/ecos_init/ecos/output/root/build/libpjsip-2.7.2/pjnath/lib -L/home/linuxbuild/build/ecos_init/ecos/output/root/build/libpjsip-2.7.2/pjmedia/lib -L/home/linuxbuild/build/ecos_init/ecos/output/root/build/libpjsip-2.7.2/pjsip/lib -L/home/linuxbuild/build/ecos_init/ecos/output/root/build/libpjsip-2.7.2/third_party/lib  -L/home/linuxbuild/build/ecos_init/ecos/output/root/host/bin/../arm-buildroot-linux-gnueabihf/sysroot/usr/lib -lavdevice -lavformat -lavcodec  -lavutil  -lv4l2 -L/home/linuxbuild/build/ecos_init/ecos/output/root/host/arm-buildroot-linux-gnueabihf/sysroot/usr/lib -lopenh264 -lstdc++  -L/home/linuxbuild/build/ecos_init/ecos/output/root/host/bin/../arm-buildroot-linux-gnueabihf/sysroot/usr/lib -lavdevice -lavformat -lavcodec  -lavutil  -lv4l2 -L/home/linuxbuild/build/ecos_init/ecos/output/root/host/arm-buildroot-linux-gnueabihf/sysroot/usr/lib -lopenh264 -lstdc++ -L/home/linuxbuild/build/ecos_init/ecos/output/root/host/arm-buildroot-linux-gnueabihf/sysroot/usr/lib -L/home/linuxbuild/build/ecos_init/ecos/output/root/host/arm-buildroot-linux-gnueabihf/sysroot/usr/lib  -Lyes/lib  -L/home/linuxbuild/build/ecos_init/ecos/output/root/host/bin/../arm-buildroot-linux-gnueabihf/sysroot/usr/lib -lavdevice -lavformat -lavcodec  -lavutil  -lv4l2 -L/home/linuxbuild/build/ecos_init/ecos/output/root/host/arm-buildroot-linux-gnueabihf/sysroot/usr/lib -lopenh264 -lstdc++
output/pjmedia-test-arm-buildroot-linux-gnueabihf/vid_codec_test.o: In function codec_on_event.part.0': vid_codec_test.c:(.text+0x2c): undefined reference to pjmedia_vid_port_get_stream'
vid_codec_test.c:(.text+0x38): undefined reference to pjmedia_vid_dev_stream_set_cap' output/pjmedia-test-arm-buildroot-linux-gnueabihf/vid_codec_test.o: In function codec_put_frame':
vid_codec_test.c:(.text+0x148): undefined reference to pjmedia_vid_port_get_passive_port' output/pjmedia-test-arm-buildroot-linux-gnueabihf/vid_codec_test.o: In function enum_codecs':
vid_codec_test.c:(.text+0x224): undefined reference to pjmedia_vid_codec_mgr_enum_codecs' output/pjmedia-test-arm-buildroot-linux-gnueabihf/vid_codec_test.o: In function encode_decode_test':
vid_codec_test.c:(.text+0x3d8): undefined reference to pjmedia_vid_codec_mgr_find_codecs_by_id' vid_codec_test.c:(.text+0x3fc): undefined reference to pjmedia_vid_dev_lookup'
vid_codec_test.c:(.text+0x41c): undefined reference to pjmedia_vid_dev_lookup' vid_codec_test.c:(.text+0x454): undefined reference to pjmedia_vid_codec_mgr_find_codecs_by_id'
vid_codec_test.c:(.text+0x46c): undefined reference to pjmedia_vid_codec_mgr_get_default_param' vid_codec_test.c:(.text+0x48c): undefined reference to pjmedia_vid_codec_mgr_alloc_codec'
vid_codec_test.c:(.text+0x514): undefined reference to pjmedia_vid_port_param_default' vid_codec_test.c:(.text+0x524): undefined reference to pjmedia_vid_dev_default_param'
vid_codec_test.c:(.text+0x578): undefined reference to pjmedia_format_get_video_format_detail' vid_codec_test.c:(.text+0x594): undefined reference to pjmedia_vid_port_create'
vid_codec_test.c:(.text+0x5cc): undefined reference to pjmedia_vid_port_create' vid_codec_test.c:(.text+0x668): undefined reference to pjmedia_vid_port_connect'
vid_codec_test.c:(.text+0x6e0): undefined reference to pjmedia_vid_port_start' vid_codec_test.c:(.text+0x6f0): undefined reference to pjmedia_vid_port_start'
vid_codec_test.c:(.text+0x714): undefined reference to pjmedia_vid_port_stop' vid_codec_test.c:(.text+0x724): undefined reference to pjmedia_vid_port_stop'
vid_codec_test.c:(.text+0x734): undefined reference to pjmedia_vid_port_destroy' vid_codec_test.c:(.text+0x744): undefined reference to pjmedia_vid_port_destroy'
vid_codec_test.c:(.text+0x780): undefined reference to pjmedia_vid_codec_mgr_dealloc_codec' output/pjmedia-test-arm-buildroot-linux-gnueabihf/vid_codec_test.o: In function vid_codec_test':
vid_codec_test.c:(.text+0x894): undefined reference to pjmedia_vid_dev_subsys_init' vid_codec_test.c:(.text+0x8a8): undefined reference to pjmedia_codec_openh264_vid_init'
vid_codec_test.c:(.text+0x8bc): undefined reference to pjmedia_codec_ffmpeg_vid_init' vid_codec_test.c:(.text+0x944): undefined reference to pjmedia_codec_ffmpeg_vid_deinit'
vid_codec_test.c:(.text+0x948): undefined reference to pjmedia_codec_openh264_vid_deinit' vid_codec_test.c:(.text+0x94c): undefined reference to pjmedia_vid_dev_subsys_shutdown'
output/pjmedia-test-arm-buildroot-linux-gnueabihf/vid_dev_test.o: In function enum_devs': vid_dev_test.c:(.text+0x64): undefined reference to pjmedia_vid_dev_count'
vid_dev_test.c:(.text+0x9c): undefined reference to pjmedia_vid_dev_get_info' vid_dev_test.c:(.text+0x15c): undefined reference to pjmedia_get_video_format_info'
output/pjmedia-test-arm-buildroot-linux-gnueabihf/vid_dev_test.o: In function loopback_test': vid_dev_test.c:(.text+0x248): undefined reference to pjmedia_vid_dev_count'
vid_dev_test.c:(.text+0x27c): undefined reference to pjmedia_vid_dev_get_info' vid_dev_test.c:(.text+0x2dc): undefined reference to pjmedia_vid_dev_get_info'
vid_dev_test.c:(.text+0x330): undefined reference to pjmedia_format_init_video' vid_dev_test.c:(.text+0x370): undefined reference to pjmedia_vid_dev_get_info'
vid_dev_test.c:(.text+0x38c): undefined reference to pjmedia_vid_dev_get_info' vid_dev_test.c:(.text+0x3ac): undefined reference to pjmedia_get_video_format_info'
vid_dev_test.c:(.text+0x418): undefined reference to pjmedia_vid_port_param_default' vid_dev_test.c:(.text+0x428): undefined reference to pjmedia_vid_dev_default_param'
vid_dev_test.c:(.text+0x490): undefined reference to pjmedia_format_get_video_format_detail' vid_dev_test.c:(.text+0x4b0): undefined reference to pjmedia_vid_port_create'
vid_dev_test.c:(.text+0x4c8): undefined reference to pjmedia_vid_dev_default_param' vid_dev_test.c:(.text+0x51c): undefined reference to pjmedia_vid_port_create'
vid_dev_test.c:(.text+0x544): undefined reference to pjmedia_vid_port_get_passive_port' vid_dev_test.c:(.text+0x554): undefined reference to pjmedia_vid_port_connect'
vid_dev_test.c:(.text+0x564): undefined reference to pjmedia_vid_port_start' vid_dev_test.c:(.text+0x574): undefined reference to pjmedia_vid_port_start'
vid_dev_test.c:(.text+0x5b4): undefined reference to pjmedia_vid_port_stop' vid_dev_test.c:(.text+0x5c4): undefined reference to pjmedia_vid_port_stop'
vid_dev_test.c:(.text+0x5d4): undefined reference to pjmedia_vid_port_destroy' vid_dev_test.c:(.text+0x5fc): undefined reference to pjmedia_vid_port_destroy'
output/pjmedia-test-arm-buildroot-linux-gnueabihf/vid_dev_test.o: In function vid_dev_test': vid_dev_test.c:(.text+0x6a4): undefined reference to pjmedia_vid_dev_subsys_init'
vid_dev_test.c:(.text+0x6c8): undefined reference to pjmedia_vid_dev_subsys_shutdown' output/pjmedia-test-arm-buildroot-linux-gnueabihf/vid_port_test.o: In function find_device':
vid_port_test.c:(.text+0x44): undefined reference to pjmedia_vid_dev_count' vid_port_test.c:(.text+0x64): undefined reference to pjmedia_vid_dev_get_info'
output/pjmedia-test-arm-buildroot-linux-gnueabihf/vid_port_test.o: In function capture_render_loopback': vid_port_test.c:(.text+0x10c): undefined reference to pjmedia_vid_dev_get_info'
vid_port_test.c:(.text+0x128): undefined reference to pjmedia_vid_dev_get_info' vid_port_test.c:(.text+0x148): undefined reference to pjmedia_get_video_format_info'
vid_port_test.c:(.text+0x1b0): undefined reference to pjmedia_vid_port_param_default' vid_port_test.c:(.text+0x1c0): undefined reference to pjmedia_vid_dev_default_param'
vid_port_test.c:(.text+0x224): undefined reference to pjmedia_format_get_video_format_detail' vid_port_test.c:(.text+0x240): undefined reference to pjmedia_vid_port_create'
vid_port_test.c:(.text+0x258): undefined reference to pjmedia_vid_dev_default_param' vid_port_test.c:(.text+0x2b4): undefined reference to pjmedia_vid_port_create'
vid_port_test.c:(.text+0x2f0): undefined reference to pjmedia_vid_port_get_passive_port' vid_port_test.c:(.text+0x300): undefined reference to pjmedia_vid_port_connect'
vid_port_test.c:(.text+0x310): undefined reference to pjmedia_vid_port_start' vid_port_test.c:(.text+0x320): undefined reference to pjmedia_vid_port_start'
vid_port_test.c:(.text+0x364): undefined reference to pjmedia_vid_port_stop' vid_port_test.c:(.text+0x374): undefined reference to pjmedia_vid_port_stop'
vid_port_test.c:(.text+0x384): undefined reference to pjmedia_vid_port_destroy' vid_port_test.c:(.text+0x3ac): undefined reference to pjmedia_vid_port_destroy'
output/pjmedia-test-arm-buildroot-linux-gnueabihf/vid_port_test.o: In function vid_port_test': vid_port_test.c:(.text+0x45c): undefined reference to pjmedia_vid_dev_subsys_init'
vid_port_test.c:(.text+0x4e4): undefined reference to pjmedia_vid_dev_subsys_shutdown' vid_port_test.c:(.text+0x5d8): undefined reference to pjmedia_format_init_video'
output/pjmedia-test-arm-buildroot-linux-gnueabihf/test.o: In function test_main': test.c:(.text+0xe0): undefined reference to pjmedia_video_format_mgr_create'
test.c:(.text+0x108): undefined reference to pjmedia_vid_codec_mgr_create' test.c:(.text+0x4b4): undefined reference to pjmedia_video_format_mgr_instance'
test.c:(.text+0x4b8): undefined reference to pjmedia_video_format_mgr_destroy' test.c:(.text+0x4cc): undefined reference to pjmedia_vid_codec_mgr_instance'
test.c:(.text+0x4d0): undefined reference to `pjmedia_vid_codec_mgr_destroy'
collect2: error: ld returned 1 exit status
make[5]: *** [/home/linuxbuild/build/ecos_init/ecos/output/root/build/libpjsip-2.7.2/build/rules.mak:125: ../bin/pjmedia-test-arm-buildroot-linux-gnueabihf] Error 1
make[4]: *** [Makefile:243: pjmedia-test-arm-buildroot-linux-gnueabihf] Error 2
make[3]: *** [Makefile:14: all] Error 1
make[2]: *** [package/pkg-generic.mk:224: /home/linuxbuild/build/ecos_init/ecos/output/root/build/libpjsip-2.7.2/.stamp_built] Error 2

Taylor Prins
Senior Embedded Software Engineer | Code Blue Corporation
tprins@codeblue.commailto:tprins@codeblue.com | www.codeblue.comhttp://www.codeblue.com/
o: 616-355-8482 | f: 616-392-8391

Follow us on Social Media:
Facebookhttps://www.facebook.com/codebluecorp | Twitterhttps://twitter.com/codebluecorp | LinkedInhttp://www.linkedin.com/company/code-blue-corporation | YouTubehttps://www.youtube.com/codebluecorporation

[email_sig_centry_release]

I'm attempting to build pjsip 2.7.2 with video enabled for an embedded application. When attempting to build, I always end up with linker errors when pj attempts to build the video tests files. The build environment I'm using is buildroot on Fedora 27. I have a full build log that I can post if needed. For reference, here is my config: ./configure --target=arm-buildroot-linux-gnueabihf --host=arm-buildroot-linux-gnueabihf --build=x86_64-pc-linux-gnu --prefix=/usr --exec-prefix=/usr --sysconfdir=/etc --localstatedir=/var --program-prefix="" --disable-gtk-doc --disable-gtk-doc-html --disable-doc --disable-docs --disable-documentation --with-xmlto=no --with-fop=no --disable-dependency-tracking --enable-ipv6 --enable-nls --disable-static --enable-shared --disable-ipp --disable-silk --with-external-srtp --enable-gpl --enable-libx264 --enable-video --with-sdl=/home/linuxbuild/build/ecos_init/ecos/output/root/host/arm-buildroot-linux-gnueabihf/sysroot/usr --with-openh264=/home/linuxbuild/build/ecos_init/ecos/output/root/host/arm-buildroot-linux-gnueabihf/sysroot/usr --enable-epoll --with-ssl --disable-oss --with-ffmpeg=/home/linuxbuild/build/ecos_init/ecos/output/root/host/arm-buildroot-linux-gnueabihf/sysroot/usr --with-bcg729=/home/linuxbuild/build/ecos_init/ecos/output/root/host/arm-buildroot-linux-gnueabihf/sysroot/usr --with-external-gsm --disable-opencore-amr --with-external-speex Build failure: ... if test ! -d ../bin; then mkdir -p ../bin; fi /home/linuxbuild/build/ecos_init/ecos/output/root/host/bin/arm-linux-gcc -o ../bin/pjmedia-test-arm-buildroot-linux-gnueabihf \ output/pjmedia-test-arm-buildroot-linux-gnueabihf/codec_vectors.o output/pjmedia-test-arm-buildroot-linux-gnueabihf/jbuf_test.o output/pjmedia-test-arm-buildroot-linux-gnueabihf/main.o output/pjmedia-test-arm-buildroot-linux-gnueabihf/mips_test.o output/pjmedia-test-arm-buildroot-linux-gnueabihf/vid_codec_test.o output/pjmedia-test-arm-buildroot-linux-gnueabihf/vid_dev_test.o output/pjmedia-test-arm-buildroot-linux-gnueabihf/vid_port_test.o output/pjmedia-test-arm-buildroot-linux-gnueabihf/rtp_test.o output/pjmedia-test-arm-buildroot-linux-gnueabihf/test.o output/pjmedia-test-arm-buildroot-linux-gnueabihf/sdp_neg_test.o -lpjmedia-codec -lpjmedia-videodev -lpjmedia-audiodev -lpjmedia -lpjnath -lpjlib-util -lpj -lresample -lilbccodec -lg7221codec -lyuv -lwebrtc -lsrtp -lgsm -lspeex -lspeexdsp -L/home/linuxbuild/build/ecos_init/ecos/output/root/host/arm-buildroot-linux-gnueabihf/sysroot/usr/lib -L/home/linuxbuild/build/ecos_init/ecos/output/root/host/arm-buildroot-linux-gnueabihf/sysroot/usr/lib -Lyes/lib -lbcg729 -lopus -lssl -lcrypto -lopenh264 -lstdc++ -luuid -lm -lrt -lpthread -lasound -L/home/linuxbuild/build/ecos_init/ecos/output/root/host/bin/../arm-buildroot-linux-gnueabihf/sysroot/usr/lib -lavdevice -lavformat -lavcodec -lavutil -lv4l2 -L/home/linuxbuild/build/ecos_init/ecos/output/root/build/libpjsip-2.7.2/pjlib/lib -L/home/linuxbuild/build/ecos_init/ecos/output/root/build/libpjsip-2.7.2/pjlib-util/lib -L/home/linuxbuild/build/ecos_init/ecos/output/root/build/libpjsip-2.7.2/pjnath/lib -L/home/linuxbuild/build/ecos_init/ecos/output/root/build/libpjsip-2.7.2/pjmedia/lib -L/home/linuxbuild/build/ecos_init/ecos/output/root/build/libpjsip-2.7.2/pjsip/lib -L/home/linuxbuild/build/ecos_init/ecos/output/root/build/libpjsip-2.7.2/third_party/lib -L/home/linuxbuild/build/ecos_init/ecos/output/root/host/bin/../arm-buildroot-linux-gnueabihf/sysroot/usr/lib -lavdevice -lavformat -lavcodec -lavutil -lv4l2 -L/home/linuxbuild/build/ecos_init/ecos/output/root/host/arm-buildroot-linux-gnueabihf/sysroot/usr/lib -lopenh264 -lstdc++ -L/home/linuxbuild/build/ecos_init/ecos/output/root/host/bin/../arm-buildroot-linux-gnueabihf/sysroot/usr/lib -lavdevice -lavformat -lavcodec -lavutil -lv4l2 -L/home/linuxbuild/build/ecos_init/ecos/output/root/host/arm-buildroot-linux-gnueabihf/sysroot/usr/lib -lopenh264 -lstdc++ -L/home/linuxbuild/build/ecos_init/ecos/output/root/host/arm-buildroot-linux-gnueabihf/sysroot/usr/lib -L/home/linuxbuild/build/ecos_init/ecos/output/root/host/arm-buildroot-linux-gnueabihf/sysroot/usr/lib -Lyes/lib -L/home/linuxbuild/build/ecos_init/ecos/output/root/host/bin/../arm-buildroot-linux-gnueabihf/sysroot/usr/lib -lavdevice -lavformat -lavcodec -lavutil -lv4l2 -L/home/linuxbuild/build/ecos_init/ecos/output/root/host/arm-buildroot-linux-gnueabihf/sysroot/usr/lib -lopenh264 -lstdc++ output/pjmedia-test-arm-buildroot-linux-gnueabihf/vid_codec_test.o: In function `codec_on_event.part.0': vid_codec_test.c:(.text+0x2c): undefined reference to `pjmedia_vid_port_get_stream' vid_codec_test.c:(.text+0x38): undefined reference to `pjmedia_vid_dev_stream_set_cap' output/pjmedia-test-arm-buildroot-linux-gnueabihf/vid_codec_test.o: In function `codec_put_frame': vid_codec_test.c:(.text+0x148): undefined reference to `pjmedia_vid_port_get_passive_port' output/pjmedia-test-arm-buildroot-linux-gnueabihf/vid_codec_test.o: In function `enum_codecs': vid_codec_test.c:(.text+0x224): undefined reference to `pjmedia_vid_codec_mgr_enum_codecs' output/pjmedia-test-arm-buildroot-linux-gnueabihf/vid_codec_test.o: In function `encode_decode_test': vid_codec_test.c:(.text+0x3d8): undefined reference to `pjmedia_vid_codec_mgr_find_codecs_by_id' vid_codec_test.c:(.text+0x3fc): undefined reference to `pjmedia_vid_dev_lookup' vid_codec_test.c:(.text+0x41c): undefined reference to `pjmedia_vid_dev_lookup' vid_codec_test.c:(.text+0x454): undefined reference to `pjmedia_vid_codec_mgr_find_codecs_by_id' vid_codec_test.c:(.text+0x46c): undefined reference to `pjmedia_vid_codec_mgr_get_default_param' vid_codec_test.c:(.text+0x48c): undefined reference to `pjmedia_vid_codec_mgr_alloc_codec' vid_codec_test.c:(.text+0x514): undefined reference to `pjmedia_vid_port_param_default' vid_codec_test.c:(.text+0x524): undefined reference to `pjmedia_vid_dev_default_param' vid_codec_test.c:(.text+0x578): undefined reference to `pjmedia_format_get_video_format_detail' vid_codec_test.c:(.text+0x594): undefined reference to `pjmedia_vid_port_create' vid_codec_test.c:(.text+0x5cc): undefined reference to `pjmedia_vid_port_create' vid_codec_test.c:(.text+0x668): undefined reference to `pjmedia_vid_port_connect' vid_codec_test.c:(.text+0x6e0): undefined reference to `pjmedia_vid_port_start' vid_codec_test.c:(.text+0x6f0): undefined reference to `pjmedia_vid_port_start' vid_codec_test.c:(.text+0x714): undefined reference to `pjmedia_vid_port_stop' vid_codec_test.c:(.text+0x724): undefined reference to `pjmedia_vid_port_stop' vid_codec_test.c:(.text+0x734): undefined reference to `pjmedia_vid_port_destroy' vid_codec_test.c:(.text+0x744): undefined reference to `pjmedia_vid_port_destroy' vid_codec_test.c:(.text+0x780): undefined reference to `pjmedia_vid_codec_mgr_dealloc_codec' output/pjmedia-test-arm-buildroot-linux-gnueabihf/vid_codec_test.o: In function `vid_codec_test': vid_codec_test.c:(.text+0x894): undefined reference to `pjmedia_vid_dev_subsys_init' vid_codec_test.c:(.text+0x8a8): undefined reference to `pjmedia_codec_openh264_vid_init' vid_codec_test.c:(.text+0x8bc): undefined reference to `pjmedia_codec_ffmpeg_vid_init' vid_codec_test.c:(.text+0x944): undefined reference to `pjmedia_codec_ffmpeg_vid_deinit' vid_codec_test.c:(.text+0x948): undefined reference to `pjmedia_codec_openh264_vid_deinit' vid_codec_test.c:(.text+0x94c): undefined reference to `pjmedia_vid_dev_subsys_shutdown' output/pjmedia-test-arm-buildroot-linux-gnueabihf/vid_dev_test.o: In function `enum_devs': vid_dev_test.c:(.text+0x64): undefined reference to `pjmedia_vid_dev_count' vid_dev_test.c:(.text+0x9c): undefined reference to `pjmedia_vid_dev_get_info' vid_dev_test.c:(.text+0x15c): undefined reference to `pjmedia_get_video_format_info' output/pjmedia-test-arm-buildroot-linux-gnueabihf/vid_dev_test.o: In function `loopback_test': vid_dev_test.c:(.text+0x248): undefined reference to `pjmedia_vid_dev_count' vid_dev_test.c:(.text+0x27c): undefined reference to `pjmedia_vid_dev_get_info' vid_dev_test.c:(.text+0x2dc): undefined reference to `pjmedia_vid_dev_get_info' vid_dev_test.c:(.text+0x330): undefined reference to `pjmedia_format_init_video' vid_dev_test.c:(.text+0x370): undefined reference to `pjmedia_vid_dev_get_info' vid_dev_test.c:(.text+0x38c): undefined reference to `pjmedia_vid_dev_get_info' vid_dev_test.c:(.text+0x3ac): undefined reference to `pjmedia_get_video_format_info' vid_dev_test.c:(.text+0x418): undefined reference to `pjmedia_vid_port_param_default' vid_dev_test.c:(.text+0x428): undefined reference to `pjmedia_vid_dev_default_param' vid_dev_test.c:(.text+0x490): undefined reference to `pjmedia_format_get_video_format_detail' vid_dev_test.c:(.text+0x4b0): undefined reference to `pjmedia_vid_port_create' vid_dev_test.c:(.text+0x4c8): undefined reference to `pjmedia_vid_dev_default_param' vid_dev_test.c:(.text+0x51c): undefined reference to `pjmedia_vid_port_create' vid_dev_test.c:(.text+0x544): undefined reference to `pjmedia_vid_port_get_passive_port' vid_dev_test.c:(.text+0x554): undefined reference to `pjmedia_vid_port_connect' vid_dev_test.c:(.text+0x564): undefined reference to `pjmedia_vid_port_start' vid_dev_test.c:(.text+0x574): undefined reference to `pjmedia_vid_port_start' vid_dev_test.c:(.text+0x5b4): undefined reference to `pjmedia_vid_port_stop' vid_dev_test.c:(.text+0x5c4): undefined reference to `pjmedia_vid_port_stop' vid_dev_test.c:(.text+0x5d4): undefined reference to `pjmedia_vid_port_destroy' vid_dev_test.c:(.text+0x5fc): undefined reference to `pjmedia_vid_port_destroy' output/pjmedia-test-arm-buildroot-linux-gnueabihf/vid_dev_test.o: In function `vid_dev_test': vid_dev_test.c:(.text+0x6a4): undefined reference to `pjmedia_vid_dev_subsys_init' vid_dev_test.c:(.text+0x6c8): undefined reference to `pjmedia_vid_dev_subsys_shutdown' output/pjmedia-test-arm-buildroot-linux-gnueabihf/vid_port_test.o: In function `find_device': vid_port_test.c:(.text+0x44): undefined reference to `pjmedia_vid_dev_count' vid_port_test.c:(.text+0x64): undefined reference to `pjmedia_vid_dev_get_info' output/pjmedia-test-arm-buildroot-linux-gnueabihf/vid_port_test.o: In function `capture_render_loopback': vid_port_test.c:(.text+0x10c): undefined reference to `pjmedia_vid_dev_get_info' vid_port_test.c:(.text+0x128): undefined reference to `pjmedia_vid_dev_get_info' vid_port_test.c:(.text+0x148): undefined reference to `pjmedia_get_video_format_info' vid_port_test.c:(.text+0x1b0): undefined reference to `pjmedia_vid_port_param_default' vid_port_test.c:(.text+0x1c0): undefined reference to `pjmedia_vid_dev_default_param' vid_port_test.c:(.text+0x224): undefined reference to `pjmedia_format_get_video_format_detail' vid_port_test.c:(.text+0x240): undefined reference to `pjmedia_vid_port_create' vid_port_test.c:(.text+0x258): undefined reference to `pjmedia_vid_dev_default_param' vid_port_test.c:(.text+0x2b4): undefined reference to `pjmedia_vid_port_create' vid_port_test.c:(.text+0x2f0): undefined reference to `pjmedia_vid_port_get_passive_port' vid_port_test.c:(.text+0x300): undefined reference to `pjmedia_vid_port_connect' vid_port_test.c:(.text+0x310): undefined reference to `pjmedia_vid_port_start' vid_port_test.c:(.text+0x320): undefined reference to `pjmedia_vid_port_start' vid_port_test.c:(.text+0x364): undefined reference to `pjmedia_vid_port_stop' vid_port_test.c:(.text+0x374): undefined reference to `pjmedia_vid_port_stop' vid_port_test.c:(.text+0x384): undefined reference to `pjmedia_vid_port_destroy' vid_port_test.c:(.text+0x3ac): undefined reference to `pjmedia_vid_port_destroy' output/pjmedia-test-arm-buildroot-linux-gnueabihf/vid_port_test.o: In function `vid_port_test': vid_port_test.c:(.text+0x45c): undefined reference to `pjmedia_vid_dev_subsys_init' vid_port_test.c:(.text+0x4e4): undefined reference to `pjmedia_vid_dev_subsys_shutdown' vid_port_test.c:(.text+0x5d8): undefined reference to `pjmedia_format_init_video' output/pjmedia-test-arm-buildroot-linux-gnueabihf/test.o: In function `test_main': test.c:(.text+0xe0): undefined reference to `pjmedia_video_format_mgr_create' test.c:(.text+0x108): undefined reference to `pjmedia_vid_codec_mgr_create' test.c:(.text+0x4b4): undefined reference to `pjmedia_video_format_mgr_instance' test.c:(.text+0x4b8): undefined reference to `pjmedia_video_format_mgr_destroy' test.c:(.text+0x4cc): undefined reference to `pjmedia_vid_codec_mgr_instance' test.c:(.text+0x4d0): undefined reference to `pjmedia_vid_codec_mgr_destroy' collect2: error: ld returned 1 exit status make[5]: *** [/home/linuxbuild/build/ecos_init/ecos/output/root/build/libpjsip-2.7.2/build/rules.mak:125: ../bin/pjmedia-test-arm-buildroot-linux-gnueabihf] Error 1 make[4]: *** [Makefile:243: pjmedia-test-arm-buildroot-linux-gnueabihf] Error 2 make[3]: *** [Makefile:14: all] Error 1 make[2]: *** [package/pkg-generic.mk:224: /home/linuxbuild/build/ecos_init/ecos/output/root/build/libpjsip-2.7.2/.stamp_built] Error 2 Taylor Prins Senior Embedded Software Engineer | Code Blue Corporation tprins@codeblue.com<mailto:tprins@codeblue.com> | www.codeblue.com<http://www.codeblue.com/> o: 616-355-8482 | f: 616-392-8391 Follow us on Social Media: Facebook<https://www.facebook.com/codebluecorp> | Twitter<https://twitter.com/codebluecorp> | LinkedIn<http://www.linkedin.com/company/code-blue-corporation> | YouTube<https://www.youtube.com/codebluecorporation> [email_sig_centry_release]
TP
Taylor Prins
Mon, Aug 5, 2019 1:17 PM

For anyone interested, I've solved the issue.  What was happening is that the build wasn't actually replacing the shared library files that were being produced from the build.  Once I went in and manually removed the old files from /home/linuxbuild/build/ecos_init/ecos/output/root/host/arm-buildroot-linux-gnueabihf/sysroot/usr everything worked.  I'm not sure if this is a pjsip build bug or an implementation issue with buildroot that was causing the shared libraries to not be replaced.

-Taylor

From: pjsip pjsip-bounces@lists.pjsip.org On Behalf Of Taylor Prins
Sent: Friday, August 2, 2019 9:26 AM
To: pjsip@lists.pjsip.org
Subject: [pjsip] Linker errors when building with video enabled on 2.7.2

I'm attempting to build pjsip 2.7.2 with video enabled for an embedded application.  When attempting to build, I always end up with linker errors when pj attempts to build the video tests files.  The build environment I'm using is buildroot on Fedora 27.  I have a full build log that I can post if needed.

For reference, here is my config:
./configure --target=arm-buildroot-linux-gnueabihf --host=arm-buildroot-linux-gnueabihf --build=x86_64-pc-linux-gnu --prefix=/usr --exec-prefix=/usr --sysconfdir=/etc --localstatedir=/var --program-prefix="" --disable-gtk-doc --disable-gtk-doc-html --disable-doc --disable-docs --disable-documentation --with-xmlto=no --with-fop=no --disable-dependency-tracking --enable-ipv6 --enable-nls --disable-static --enable-shared  --disable-ipp --disable-silk --with-external-srtp --enable-gpl --enable-libx264 --enable-video --with-sdl=/home/linuxbuild/build/ecos_init/ecos/output/root/host/arm-buildroot-linux-gnueabihf/sysroot/usr --with-openh264=/home/linuxbuild/build/ecos_init/ecos/output/root/host/arm-buildroot-linux-gnueabihf/sysroot/usr --enable-epoll --with-ssl --disable-oss --with-ffmpeg=/home/linuxbuild/build/ecos_init/ecos/output/root/host/arm-buildroot-linux-gnueabihf/sysroot/usr --with-bcg729=/home/linuxbuild/build/ecos_init/ecos/output/root/host/arm-buildroot-linux-gnueabihf/sysroot/usr --with-external-gsm --disable-opencore-amr --with-external-speex
Build failure:
...
if test ! -d ../bin; then mkdir -p ../bin; fi
/home/linuxbuild/build/ecos_init/ecos/output/root/host/bin/arm-linux-gcc -o ../bin/pjmedia-test-arm-buildroot-linux-gnueabihf
output/pjmedia-test-arm-buildroot-linux-gnueabihf/codec_vectors.o  output/pjmedia-test-arm-buildroot-linux-gnueabihf/jbuf_test.o  output/pjmedia-test-arm-buildroot-linux-gnueabihf/main.o  output/pjmedia-test-arm-buildroot-linux-gnueabihf/mips_test.o  output/pjmedia-test-arm-buildroot-linux-gnueabihf/vid_codec_test.o  output/pjmedia-test-arm-buildroot-linux-gnueabihf/vid_dev_test.o  output/pjmedia-test-arm-buildroot-linux-gnueabihf/vid_port_test.o  output/pjmedia-test-arm-buildroot-linux-gnueabihf/rtp_test.o  output/pjmedia-test-arm-buildroot-linux-gnueabihf/test.o  output/pjmedia-test-arm-buildroot-linux-gnueabihf/sdp_neg_test.o -lpjmedia-codec -lpjmedia-videodev -lpjmedia-audiodev -lpjmedia -lpjnath -lpjlib-util -lpj  -lresample -lilbccodec -lg7221codec -lyuv -lwebrtc  -lsrtp -lgsm -lspeex -lspeexdsp  -L/home/linuxbuild/build/ecos_init/ecos/output/root/host/arm-buildroot-linux-gnueabihf/sysroot/usr/lib -L/home/linuxbuild/build/ecos_init/ecos/output/root/host/arm-buildroot-linux-gnueabihf/sysroot/usr/lib  -Lyes/lib -lbcg729 -lopus -lssl -lcrypto -lopenh264 -lstdc++ -luuid -lm -lrt -lpthread  -lasound  -L/home/linuxbuild/build/ecos_init/ecos/output/root/host/bin/../arm-buildroot-linux-gnueabihf/sysroot/usr/lib -lavdevice -lavformat -lavcodec  -lavutil  -lv4l2  -L/home/linuxbuild/build/ecos_init/ecos/output/root/build/libpjsip-2.7.2/pjlib/lib -L/home/linuxbuild/build/ecos_init/ecos/output/root/build/libpjsip-2.7.2/pjlib-util/lib -L/home/linuxbuild/build/ecos_init/ecos/output/root/build/libpjsip-2.7.2/pjnath/lib -L/home/linuxbuild/build/ecos_init/ecos/output/root/build/libpjsip-2.7.2/pjmedia/lib -L/home/linuxbuild/build/ecos_init/ecos/output/root/build/libpjsip-2.7.2/pjsip/lib -L/home/linuxbuild/build/ecos_init/ecos/output/root/build/libpjsip-2.7.2/third_party/lib  -L/home/linuxbuild/build/ecos_init/ecos/output/root/host/bin/../arm-buildroot-linux-gnueabihf/sysroot/usr/lib -lavdevice -lavformat -lavcodec  -lavutil  -lv4l2 -L/home/linuxbuild/build/ecos_init/ecos/output/root/host/arm-buildroot-linux-gnueabihf/sysroot/usr/lib -lopenh264 -lstdc++  -L/home/linuxbuild/build/ecos_init/ecos/output/root/host/bin/../arm-buildroot-linux-gnueabihf/sysroot/usr/lib -lavdevice -lavformat -lavcodec  -lavutil  -lv4l2 -L/home/linuxbuild/build/ecos_init/ecos/output/root/host/arm-buildroot-linux-gnueabihf/sysroot/usr/lib -lopenh264 -lstdc++ -L/home/linuxbuild/build/ecos_init/ecos/output/root/host/arm-buildroot-linux-gnueabihf/sysroot/usr/lib -L/home/linuxbuild/build/ecos_init/ecos/output/root/host/arm-buildroot-linux-gnueabihf/sysroot/usr/lib  -Lyes/lib  -L/home/linuxbuild/build/ecos_init/ecos/output/root/host/bin/../arm-buildroot-linux-gnueabihf/sysroot/usr/lib -lavdevice -lavformat -lavcodec  -lavutil  -lv4l2 -L/home/linuxbuild/build/ecos_init/ecos/output/root/host/arm-buildroot-linux-gnueabihf/sysroot/usr/lib -lopenh264 -lstdc++
output/pjmedia-test-arm-buildroot-linux-gnueabihf/vid_codec_test.o: In function codec_on_event.part.0': vid_codec_test.c:(.text+0x2c): undefined reference to pjmedia_vid_port_get_stream'
vid_codec_test.c:(.text+0x38): undefined reference to pjmedia_vid_dev_stream_set_cap' output/pjmedia-test-arm-buildroot-linux-gnueabihf/vid_codec_test.o: In function codec_put_frame':
vid_codec_test.c:(.text+0x148): undefined reference to pjmedia_vid_port_get_passive_port' output/pjmedia-test-arm-buildroot-linux-gnueabihf/vid_codec_test.o: In function enum_codecs':
vid_codec_test.c:(.text+0x224): undefined reference to pjmedia_vid_codec_mgr_enum_codecs' output/pjmedia-test-arm-buildroot-linux-gnueabihf/vid_codec_test.o: In function encode_decode_test':
vid_codec_test.c:(.text+0x3d8): undefined reference to pjmedia_vid_codec_mgr_find_codecs_by_id' vid_codec_test.c:(.text+0x3fc): undefined reference to pjmedia_vid_dev_lookup'
vid_codec_test.c:(.text+0x41c): undefined reference to pjmedia_vid_dev_lookup' vid_codec_test.c:(.text+0x454): undefined reference to pjmedia_vid_codec_mgr_find_codecs_by_id'
vid_codec_test.c:(.text+0x46c): undefined reference to pjmedia_vid_codec_mgr_get_default_param' vid_codec_test.c:(.text+0x48c): undefined reference to pjmedia_vid_codec_mgr_alloc_codec'
vid_codec_test.c:(.text+0x514): undefined reference to pjmedia_vid_port_param_default' vid_codec_test.c:(.text+0x524): undefined reference to pjmedia_vid_dev_default_param'
vid_codec_test.c:(.text+0x578): undefined reference to pjmedia_format_get_video_format_detail' vid_codec_test.c:(.text+0x594): undefined reference to pjmedia_vid_port_create'
vid_codec_test.c:(.text+0x5cc): undefined reference to pjmedia_vid_port_create' vid_codec_test.c:(.text+0x668): undefined reference to pjmedia_vid_port_connect'
vid_codec_test.c:(.text+0x6e0): undefined reference to pjmedia_vid_port_start' vid_codec_test.c:(.text+0x6f0): undefined reference to pjmedia_vid_port_start'
vid_codec_test.c:(.text+0x714): undefined reference to pjmedia_vid_port_stop' vid_codec_test.c:(.text+0x724): undefined reference to pjmedia_vid_port_stop'
vid_codec_test.c:(.text+0x734): undefined reference to pjmedia_vid_port_destroy' vid_codec_test.c:(.text+0x744): undefined reference to pjmedia_vid_port_destroy'
vid_codec_test.c:(.text+0x780): undefined reference to pjmedia_vid_codec_mgr_dealloc_codec' output/pjmedia-test-arm-buildroot-linux-gnueabihf/vid_codec_test.o: In function vid_codec_test':
vid_codec_test.c:(.text+0x894): undefined reference to pjmedia_vid_dev_subsys_init' vid_codec_test.c:(.text+0x8a8): undefined reference to pjmedia_codec_openh264_vid_init'
vid_codec_test.c:(.text+0x8bc): undefined reference to pjmedia_codec_ffmpeg_vid_init' vid_codec_test.c:(.text+0x944): undefined reference to pjmedia_codec_ffmpeg_vid_deinit'
vid_codec_test.c:(.text+0x948): undefined reference to pjmedia_codec_openh264_vid_deinit' vid_codec_test.c:(.text+0x94c): undefined reference to pjmedia_vid_dev_subsys_shutdown'
output/pjmedia-test-arm-buildroot-linux-gnueabihf/vid_dev_test.o: In function enum_devs': vid_dev_test.c:(.text+0x64): undefined reference to pjmedia_vid_dev_count'
vid_dev_test.c:(.text+0x9c): undefined reference to pjmedia_vid_dev_get_info' vid_dev_test.c:(.text+0x15c): undefined reference to pjmedia_get_video_format_info'
output/pjmedia-test-arm-buildroot-linux-gnueabihf/vid_dev_test.o: In function loopback_test': vid_dev_test.c:(.text+0x248): undefined reference to pjmedia_vid_dev_count'
vid_dev_test.c:(.text+0x27c): undefined reference to pjmedia_vid_dev_get_info' vid_dev_test.c:(.text+0x2dc): undefined reference to pjmedia_vid_dev_get_info'
vid_dev_test.c:(.text+0x330): undefined reference to pjmedia_format_init_video' vid_dev_test.c:(.text+0x370): undefined reference to pjmedia_vid_dev_get_info'
vid_dev_test.c:(.text+0x38c): undefined reference to pjmedia_vid_dev_get_info' vid_dev_test.c:(.text+0x3ac): undefined reference to pjmedia_get_video_format_info'
vid_dev_test.c:(.text+0x418): undefined reference to pjmedia_vid_port_param_default' vid_dev_test.c:(.text+0x428): undefined reference to pjmedia_vid_dev_default_param'
vid_dev_test.c:(.text+0x490): undefined reference to pjmedia_format_get_video_format_detail' vid_dev_test.c:(.text+0x4b0): undefined reference to pjmedia_vid_port_create'
vid_dev_test.c:(.text+0x4c8): undefined reference to pjmedia_vid_dev_default_param' vid_dev_test.c:(.text+0x51c): undefined reference to pjmedia_vid_port_create'
vid_dev_test.c:(.text+0x544): undefined reference to pjmedia_vid_port_get_passive_port' vid_dev_test.c:(.text+0x554): undefined reference to pjmedia_vid_port_connect'
vid_dev_test.c:(.text+0x564): undefined reference to pjmedia_vid_port_start' vid_dev_test.c:(.text+0x574): undefined reference to pjmedia_vid_port_start'
vid_dev_test.c:(.text+0x5b4): undefined reference to pjmedia_vid_port_stop' vid_dev_test.c:(.text+0x5c4): undefined reference to pjmedia_vid_port_stop'
vid_dev_test.c:(.text+0x5d4): undefined reference to pjmedia_vid_port_destroy' vid_dev_test.c:(.text+0x5fc): undefined reference to pjmedia_vid_port_destroy'
output/pjmedia-test-arm-buildroot-linux-gnueabihf/vid_dev_test.o: In function vid_dev_test': vid_dev_test.c:(.text+0x6a4): undefined reference to pjmedia_vid_dev_subsys_init'
vid_dev_test.c:(.text+0x6c8): undefined reference to pjmedia_vid_dev_subsys_shutdown' output/pjmedia-test-arm-buildroot-linux-gnueabihf/vid_port_test.o: In function find_device':
vid_port_test.c:(.text+0x44): undefined reference to pjmedia_vid_dev_count' vid_port_test.c:(.text+0x64): undefined reference to pjmedia_vid_dev_get_info'
output/pjmedia-test-arm-buildroot-linux-gnueabihf/vid_port_test.o: In function capture_render_loopback': vid_port_test.c:(.text+0x10c): undefined reference to pjmedia_vid_dev_get_info'
vid_port_test.c:(.text+0x128): undefined reference to pjmedia_vid_dev_get_info' vid_port_test.c:(.text+0x148): undefined reference to pjmedia_get_video_format_info'
vid_port_test.c:(.text+0x1b0): undefined reference to pjmedia_vid_port_param_default' vid_port_test.c:(.text+0x1c0): undefined reference to pjmedia_vid_dev_default_param'
vid_port_test.c:(.text+0x224): undefined reference to pjmedia_format_get_video_format_detail' vid_port_test.c:(.text+0x240): undefined reference to pjmedia_vid_port_create'
vid_port_test.c:(.text+0x258): undefined reference to pjmedia_vid_dev_default_param' vid_port_test.c:(.text+0x2b4): undefined reference to pjmedia_vid_port_create'
vid_port_test.c:(.text+0x2f0): undefined reference to pjmedia_vid_port_get_passive_port' vid_port_test.c:(.text+0x300): undefined reference to pjmedia_vid_port_connect'
vid_port_test.c:(.text+0x310): undefined reference to pjmedia_vid_port_start' vid_port_test.c:(.text+0x320): undefined reference to pjmedia_vid_port_start'
vid_port_test.c:(.text+0x364): undefined reference to pjmedia_vid_port_stop' vid_port_test.c:(.text+0x374): undefined reference to pjmedia_vid_port_stop'
vid_port_test.c:(.text+0x384): undefined reference to pjmedia_vid_port_destroy' vid_port_test.c:(.text+0x3ac): undefined reference to pjmedia_vid_port_destroy'
output/pjmedia-test-arm-buildroot-linux-gnueabihf/vid_port_test.o: In function vid_port_test': vid_port_test.c:(.text+0x45c): undefined reference to pjmedia_vid_dev_subsys_init'
vid_port_test.c:(.text+0x4e4): undefined reference to pjmedia_vid_dev_subsys_shutdown' vid_port_test.c:(.text+0x5d8): undefined reference to pjmedia_format_init_video'
output/pjmedia-test-arm-buildroot-linux-gnueabihf/test.o: In function test_main': test.c:(.text+0xe0): undefined reference to pjmedia_video_format_mgr_create'
test.c:(.text+0x108): undefined reference to pjmedia_vid_codec_mgr_create' test.c:(.text+0x4b4): undefined reference to pjmedia_video_format_mgr_instance'
test.c:(.text+0x4b8): undefined reference to pjmedia_video_format_mgr_destroy' test.c:(.text+0x4cc): undefined reference to pjmedia_vid_codec_mgr_instance'
test.c:(.text+0x4d0): undefined reference to `pjmedia_vid_codec_mgr_destroy'
collect2: error: ld returned 1 exit status
make[5]: *** [/home/linuxbuild/build/ecos_init/ecos/output/root/build/libpjsip-2.7.2/build/rules.mak:125: ../bin/pjmedia-test-arm-buildroot-linux-gnueabihf] Error 1
make[4]: *** [Makefile:243: pjmedia-test-arm-buildroot-linux-gnueabihf] Error 2
make[3]: *** [Makefile:14: all] Error 1
make[2]: *** [package/pkg-generic.mk:224: /home/linuxbuild/build/ecos_init/ecos/output/root/build/libpjsip-2.7.2/.stamp_built] Error 2

Taylor Prins
Senior Embedded Software Engineer | Code Blue Corporation
tprins@codeblue.commailto:tprins@codeblue.com | www.codeblue.comhttp://www.codeblue.com/
o: 616-355-8482 | f: 616-392-8391

Follow us on Social Media:
Facebookhttps://www.facebook.com/codebluecorp | Twitterhttps://twitter.com/codebluecorp | LinkedInhttp://www.linkedin.com/company/code-blue-corporation | YouTubehttps://www.youtube.com/codebluecorporation

[email_sig_centry_release]

For anyone interested, I've solved the issue. What was happening is that the build wasn't actually replacing the shared library files that were being produced from the build. Once I went in and manually removed the old files from /home/linuxbuild/build/ecos_init/ecos/output/root/host/arm-buildroot-linux-gnueabihf/sysroot/usr everything worked. I'm not sure if this is a pjsip build bug or an implementation issue with buildroot that was causing the shared libraries to not be replaced. -Taylor From: pjsip <pjsip-bounces@lists.pjsip.org> On Behalf Of Taylor Prins Sent: Friday, August 2, 2019 9:26 AM To: pjsip@lists.pjsip.org Subject: [pjsip] Linker errors when building with video enabled on 2.7.2 I'm attempting to build pjsip 2.7.2 with video enabled for an embedded application. When attempting to build, I always end up with linker errors when pj attempts to build the video tests files. The build environment I'm using is buildroot on Fedora 27. I have a full build log that I can post if needed. For reference, here is my config: ./configure --target=arm-buildroot-linux-gnueabihf --host=arm-buildroot-linux-gnueabihf --build=x86_64-pc-linux-gnu --prefix=/usr --exec-prefix=/usr --sysconfdir=/etc --localstatedir=/var --program-prefix="" --disable-gtk-doc --disable-gtk-doc-html --disable-doc --disable-docs --disable-documentation --with-xmlto=no --with-fop=no --disable-dependency-tracking --enable-ipv6 --enable-nls --disable-static --enable-shared --disable-ipp --disable-silk --with-external-srtp --enable-gpl --enable-libx264 --enable-video --with-sdl=/home/linuxbuild/build/ecos_init/ecos/output/root/host/arm-buildroot-linux-gnueabihf/sysroot/usr --with-openh264=/home/linuxbuild/build/ecos_init/ecos/output/root/host/arm-buildroot-linux-gnueabihf/sysroot/usr --enable-epoll --with-ssl --disable-oss --with-ffmpeg=/home/linuxbuild/build/ecos_init/ecos/output/root/host/arm-buildroot-linux-gnueabihf/sysroot/usr --with-bcg729=/home/linuxbuild/build/ecos_init/ecos/output/root/host/arm-buildroot-linux-gnueabihf/sysroot/usr --with-external-gsm --disable-opencore-amr --with-external-speex Build failure: ... if test ! -d ../bin; then mkdir -p ../bin; fi /home/linuxbuild/build/ecos_init/ecos/output/root/host/bin/arm-linux-gcc -o ../bin/pjmedia-test-arm-buildroot-linux-gnueabihf \ output/pjmedia-test-arm-buildroot-linux-gnueabihf/codec_vectors.o output/pjmedia-test-arm-buildroot-linux-gnueabihf/jbuf_test.o output/pjmedia-test-arm-buildroot-linux-gnueabihf/main.o output/pjmedia-test-arm-buildroot-linux-gnueabihf/mips_test.o output/pjmedia-test-arm-buildroot-linux-gnueabihf/vid_codec_test.o output/pjmedia-test-arm-buildroot-linux-gnueabihf/vid_dev_test.o output/pjmedia-test-arm-buildroot-linux-gnueabihf/vid_port_test.o output/pjmedia-test-arm-buildroot-linux-gnueabihf/rtp_test.o output/pjmedia-test-arm-buildroot-linux-gnueabihf/test.o output/pjmedia-test-arm-buildroot-linux-gnueabihf/sdp_neg_test.o -lpjmedia-codec -lpjmedia-videodev -lpjmedia-audiodev -lpjmedia -lpjnath -lpjlib-util -lpj -lresample -lilbccodec -lg7221codec -lyuv -lwebrtc -lsrtp -lgsm -lspeex -lspeexdsp -L/home/linuxbuild/build/ecos_init/ecos/output/root/host/arm-buildroot-linux-gnueabihf/sysroot/usr/lib -L/home/linuxbuild/build/ecos_init/ecos/output/root/host/arm-buildroot-linux-gnueabihf/sysroot/usr/lib -Lyes/lib -lbcg729 -lopus -lssl -lcrypto -lopenh264 -lstdc++ -luuid -lm -lrt -lpthread -lasound -L/home/linuxbuild/build/ecos_init/ecos/output/root/host/bin/../arm-buildroot-linux-gnueabihf/sysroot/usr/lib -lavdevice -lavformat -lavcodec -lavutil -lv4l2 -L/home/linuxbuild/build/ecos_init/ecos/output/root/build/libpjsip-2.7.2/pjlib/lib -L/home/linuxbuild/build/ecos_init/ecos/output/root/build/libpjsip-2.7.2/pjlib-util/lib -L/home/linuxbuild/build/ecos_init/ecos/output/root/build/libpjsip-2.7.2/pjnath/lib -L/home/linuxbuild/build/ecos_init/ecos/output/root/build/libpjsip-2.7.2/pjmedia/lib -L/home/linuxbuild/build/ecos_init/ecos/output/root/build/libpjsip-2.7.2/pjsip/lib -L/home/linuxbuild/build/ecos_init/ecos/output/root/build/libpjsip-2.7.2/third_party/lib -L/home/linuxbuild/build/ecos_init/ecos/output/root/host/bin/../arm-buildroot-linux-gnueabihf/sysroot/usr/lib -lavdevice -lavformat -lavcodec -lavutil -lv4l2 -L/home/linuxbuild/build/ecos_init/ecos/output/root/host/arm-buildroot-linux-gnueabihf/sysroot/usr/lib -lopenh264 -lstdc++ -L/home/linuxbuild/build/ecos_init/ecos/output/root/host/bin/../arm-buildroot-linux-gnueabihf/sysroot/usr/lib -lavdevice -lavformat -lavcodec -lavutil -lv4l2 -L/home/linuxbuild/build/ecos_init/ecos/output/root/host/arm-buildroot-linux-gnueabihf/sysroot/usr/lib -lopenh264 -lstdc++ -L/home/linuxbuild/build/ecos_init/ecos/output/root/host/arm-buildroot-linux-gnueabihf/sysroot/usr/lib -L/home/linuxbuild/build/ecos_init/ecos/output/root/host/arm-buildroot-linux-gnueabihf/sysroot/usr/lib -Lyes/lib -L/home/linuxbuild/build/ecos_init/ecos/output/root/host/bin/../arm-buildroot-linux-gnueabihf/sysroot/usr/lib -lavdevice -lavformat -lavcodec -lavutil -lv4l2 -L/home/linuxbuild/build/ecos_init/ecos/output/root/host/arm-buildroot-linux-gnueabihf/sysroot/usr/lib -lopenh264 -lstdc++ output/pjmedia-test-arm-buildroot-linux-gnueabihf/vid_codec_test.o: In function `codec_on_event.part.0': vid_codec_test.c:(.text+0x2c): undefined reference to `pjmedia_vid_port_get_stream' vid_codec_test.c:(.text+0x38): undefined reference to `pjmedia_vid_dev_stream_set_cap' output/pjmedia-test-arm-buildroot-linux-gnueabihf/vid_codec_test.o: In function `codec_put_frame': vid_codec_test.c:(.text+0x148): undefined reference to `pjmedia_vid_port_get_passive_port' output/pjmedia-test-arm-buildroot-linux-gnueabihf/vid_codec_test.o: In function `enum_codecs': vid_codec_test.c:(.text+0x224): undefined reference to `pjmedia_vid_codec_mgr_enum_codecs' output/pjmedia-test-arm-buildroot-linux-gnueabihf/vid_codec_test.o: In function `encode_decode_test': vid_codec_test.c:(.text+0x3d8): undefined reference to `pjmedia_vid_codec_mgr_find_codecs_by_id' vid_codec_test.c:(.text+0x3fc): undefined reference to `pjmedia_vid_dev_lookup' vid_codec_test.c:(.text+0x41c): undefined reference to `pjmedia_vid_dev_lookup' vid_codec_test.c:(.text+0x454): undefined reference to `pjmedia_vid_codec_mgr_find_codecs_by_id' vid_codec_test.c:(.text+0x46c): undefined reference to `pjmedia_vid_codec_mgr_get_default_param' vid_codec_test.c:(.text+0x48c): undefined reference to `pjmedia_vid_codec_mgr_alloc_codec' vid_codec_test.c:(.text+0x514): undefined reference to `pjmedia_vid_port_param_default' vid_codec_test.c:(.text+0x524): undefined reference to `pjmedia_vid_dev_default_param' vid_codec_test.c:(.text+0x578): undefined reference to `pjmedia_format_get_video_format_detail' vid_codec_test.c:(.text+0x594): undefined reference to `pjmedia_vid_port_create' vid_codec_test.c:(.text+0x5cc): undefined reference to `pjmedia_vid_port_create' vid_codec_test.c:(.text+0x668): undefined reference to `pjmedia_vid_port_connect' vid_codec_test.c:(.text+0x6e0): undefined reference to `pjmedia_vid_port_start' vid_codec_test.c:(.text+0x6f0): undefined reference to `pjmedia_vid_port_start' vid_codec_test.c:(.text+0x714): undefined reference to `pjmedia_vid_port_stop' vid_codec_test.c:(.text+0x724): undefined reference to `pjmedia_vid_port_stop' vid_codec_test.c:(.text+0x734): undefined reference to `pjmedia_vid_port_destroy' vid_codec_test.c:(.text+0x744): undefined reference to `pjmedia_vid_port_destroy' vid_codec_test.c:(.text+0x780): undefined reference to `pjmedia_vid_codec_mgr_dealloc_codec' output/pjmedia-test-arm-buildroot-linux-gnueabihf/vid_codec_test.o: In function `vid_codec_test': vid_codec_test.c:(.text+0x894): undefined reference to `pjmedia_vid_dev_subsys_init' vid_codec_test.c:(.text+0x8a8): undefined reference to `pjmedia_codec_openh264_vid_init' vid_codec_test.c:(.text+0x8bc): undefined reference to `pjmedia_codec_ffmpeg_vid_init' vid_codec_test.c:(.text+0x944): undefined reference to `pjmedia_codec_ffmpeg_vid_deinit' vid_codec_test.c:(.text+0x948): undefined reference to `pjmedia_codec_openh264_vid_deinit' vid_codec_test.c:(.text+0x94c): undefined reference to `pjmedia_vid_dev_subsys_shutdown' output/pjmedia-test-arm-buildroot-linux-gnueabihf/vid_dev_test.o: In function `enum_devs': vid_dev_test.c:(.text+0x64): undefined reference to `pjmedia_vid_dev_count' vid_dev_test.c:(.text+0x9c): undefined reference to `pjmedia_vid_dev_get_info' vid_dev_test.c:(.text+0x15c): undefined reference to `pjmedia_get_video_format_info' output/pjmedia-test-arm-buildroot-linux-gnueabihf/vid_dev_test.o: In function `loopback_test': vid_dev_test.c:(.text+0x248): undefined reference to `pjmedia_vid_dev_count' vid_dev_test.c:(.text+0x27c): undefined reference to `pjmedia_vid_dev_get_info' vid_dev_test.c:(.text+0x2dc): undefined reference to `pjmedia_vid_dev_get_info' vid_dev_test.c:(.text+0x330): undefined reference to `pjmedia_format_init_video' vid_dev_test.c:(.text+0x370): undefined reference to `pjmedia_vid_dev_get_info' vid_dev_test.c:(.text+0x38c): undefined reference to `pjmedia_vid_dev_get_info' vid_dev_test.c:(.text+0x3ac): undefined reference to `pjmedia_get_video_format_info' vid_dev_test.c:(.text+0x418): undefined reference to `pjmedia_vid_port_param_default' vid_dev_test.c:(.text+0x428): undefined reference to `pjmedia_vid_dev_default_param' vid_dev_test.c:(.text+0x490): undefined reference to `pjmedia_format_get_video_format_detail' vid_dev_test.c:(.text+0x4b0): undefined reference to `pjmedia_vid_port_create' vid_dev_test.c:(.text+0x4c8): undefined reference to `pjmedia_vid_dev_default_param' vid_dev_test.c:(.text+0x51c): undefined reference to `pjmedia_vid_port_create' vid_dev_test.c:(.text+0x544): undefined reference to `pjmedia_vid_port_get_passive_port' vid_dev_test.c:(.text+0x554): undefined reference to `pjmedia_vid_port_connect' vid_dev_test.c:(.text+0x564): undefined reference to `pjmedia_vid_port_start' vid_dev_test.c:(.text+0x574): undefined reference to `pjmedia_vid_port_start' vid_dev_test.c:(.text+0x5b4): undefined reference to `pjmedia_vid_port_stop' vid_dev_test.c:(.text+0x5c4): undefined reference to `pjmedia_vid_port_stop' vid_dev_test.c:(.text+0x5d4): undefined reference to `pjmedia_vid_port_destroy' vid_dev_test.c:(.text+0x5fc): undefined reference to `pjmedia_vid_port_destroy' output/pjmedia-test-arm-buildroot-linux-gnueabihf/vid_dev_test.o: In function `vid_dev_test': vid_dev_test.c:(.text+0x6a4): undefined reference to `pjmedia_vid_dev_subsys_init' vid_dev_test.c:(.text+0x6c8): undefined reference to `pjmedia_vid_dev_subsys_shutdown' output/pjmedia-test-arm-buildroot-linux-gnueabihf/vid_port_test.o: In function `find_device': vid_port_test.c:(.text+0x44): undefined reference to `pjmedia_vid_dev_count' vid_port_test.c:(.text+0x64): undefined reference to `pjmedia_vid_dev_get_info' output/pjmedia-test-arm-buildroot-linux-gnueabihf/vid_port_test.o: In function `capture_render_loopback': vid_port_test.c:(.text+0x10c): undefined reference to `pjmedia_vid_dev_get_info' vid_port_test.c:(.text+0x128): undefined reference to `pjmedia_vid_dev_get_info' vid_port_test.c:(.text+0x148): undefined reference to `pjmedia_get_video_format_info' vid_port_test.c:(.text+0x1b0): undefined reference to `pjmedia_vid_port_param_default' vid_port_test.c:(.text+0x1c0): undefined reference to `pjmedia_vid_dev_default_param' vid_port_test.c:(.text+0x224): undefined reference to `pjmedia_format_get_video_format_detail' vid_port_test.c:(.text+0x240): undefined reference to `pjmedia_vid_port_create' vid_port_test.c:(.text+0x258): undefined reference to `pjmedia_vid_dev_default_param' vid_port_test.c:(.text+0x2b4): undefined reference to `pjmedia_vid_port_create' vid_port_test.c:(.text+0x2f0): undefined reference to `pjmedia_vid_port_get_passive_port' vid_port_test.c:(.text+0x300): undefined reference to `pjmedia_vid_port_connect' vid_port_test.c:(.text+0x310): undefined reference to `pjmedia_vid_port_start' vid_port_test.c:(.text+0x320): undefined reference to `pjmedia_vid_port_start' vid_port_test.c:(.text+0x364): undefined reference to `pjmedia_vid_port_stop' vid_port_test.c:(.text+0x374): undefined reference to `pjmedia_vid_port_stop' vid_port_test.c:(.text+0x384): undefined reference to `pjmedia_vid_port_destroy' vid_port_test.c:(.text+0x3ac): undefined reference to `pjmedia_vid_port_destroy' output/pjmedia-test-arm-buildroot-linux-gnueabihf/vid_port_test.o: In function `vid_port_test': vid_port_test.c:(.text+0x45c): undefined reference to `pjmedia_vid_dev_subsys_init' vid_port_test.c:(.text+0x4e4): undefined reference to `pjmedia_vid_dev_subsys_shutdown' vid_port_test.c:(.text+0x5d8): undefined reference to `pjmedia_format_init_video' output/pjmedia-test-arm-buildroot-linux-gnueabihf/test.o: In function `test_main': test.c:(.text+0xe0): undefined reference to `pjmedia_video_format_mgr_create' test.c:(.text+0x108): undefined reference to `pjmedia_vid_codec_mgr_create' test.c:(.text+0x4b4): undefined reference to `pjmedia_video_format_mgr_instance' test.c:(.text+0x4b8): undefined reference to `pjmedia_video_format_mgr_destroy' test.c:(.text+0x4cc): undefined reference to `pjmedia_vid_codec_mgr_instance' test.c:(.text+0x4d0): undefined reference to `pjmedia_vid_codec_mgr_destroy' collect2: error: ld returned 1 exit status make[5]: *** [/home/linuxbuild/build/ecos_init/ecos/output/root/build/libpjsip-2.7.2/build/rules.mak:125: ../bin/pjmedia-test-arm-buildroot-linux-gnueabihf] Error 1 make[4]: *** [Makefile:243: pjmedia-test-arm-buildroot-linux-gnueabihf] Error 2 make[3]: *** [Makefile:14: all] Error 1 make[2]: *** [package/pkg-generic.mk:224: /home/linuxbuild/build/ecos_init/ecos/output/root/build/libpjsip-2.7.2/.stamp_built] Error 2 Taylor Prins Senior Embedded Software Engineer | Code Blue Corporation tprins@codeblue.com<mailto:tprins@codeblue.com> | www.codeblue.com<http://www.codeblue.com/> o: 616-355-8482 | f: 616-392-8391 Follow us on Social Media: Facebook<https://www.facebook.com/codebluecorp> | Twitter<https://twitter.com/codebluecorp> | LinkedIn<http://www.linkedin.com/company/code-blue-corporation> | YouTube<https://www.youtube.com/codebluecorporation> [email_sig_centry_release]