Hi all,
I'm currently trying to compile Pjproject v2.7.2 on an Ubuntu 18.04. I
followed the following guide
https://github.com/acrossi/raspberry-pi-stuff/wiki/Compiling-PJSIP-with-Video-and-Audio-on-the-Raspberry-Pi-3---RPI-Camera-Module
With just audio everything works great. I can make Pjproject successfull
and also use it successfull. But with video (adding #define
PJMEDIA_HAS_VIDEO 1 to config_site.h & running ./configure --enable-video)
it always fails with multiple pjmedia undefined reference errors.
Is there propably something special I have to take care on Ubuntu? Is there
propably even a guide on how it should be done? (Just found the guide on
Github)
Benjamin
Full Error report:
gcc -o ../bin/pjmedia-test-x86_64-unknown-linux-gnu
output/pjmedia-test-x86_64-unknown-linux-gnu/codec_vectors.o
output/pjmedia-test-x86_64-unknown-linux-gnu/jbuf_test.o
output/pjmedia-test-x86_64-unknown-linux-gnu/main.o
output/pjmedia-test-x86_64-unknown-linux-gnu/mips_test.o
output/pjmedia-test-x86_64-unknown-linux-gnu/vid_codec_test.o
output/pjmedia-test-x86_64-unknown-linux-gnu/vid_dev_test.o
output/pjmedia-test-x86_64-unknown-linux-gnu/vid_port_test.o
output/pjmedia-test-x86_64-unknown-linux-gnu/rtp_test.o
output/pjmedia-test-x86_64-unknown-linux-gnu/test.o
output/pjmedia-test-x86_64-unknown-linux-gnu/sdp_neg_test.o
-lpjmedia-codec-x86_64-unknown-linux-gnu
-lpjmedia-videodev-x86_64-unknown-linux-gnu
-lpjmedia-audiodev-x86_64-unknown-linux-gnu
-lpjmedia-x86_64-unknown-linux-gnu -lpjnath-x86_64-unknown-linux-gnu
-lpjlib-util-x86_64-unknown-linux-gnu -lpj-x86_64-unknown-linux-gnu
-lsrtp-x86_64-unknown-linux-gnu -lresample-x86_64-unknown-linux-gnu
-lgsmcodec-x86_64-unknown-linux-gnu -lspeex-x86_64-unknown-linux-gnu
-lilbccodec-x86_64-unknown-linux-gnu -lg7221codec-x86_64-unknown-linux-gnu
-lyuv-x86_64-unknown-linux-gnu -lwebrtc-x86_64-unknown-linux-gnu -lopus
-lssl -lcrypto -lopenh264 -lstdc++ -luuid -lm -lrt -lpthread -lasound
-L/usr/local/lib -Wl,-rpath,/usr/local/lib -Wl,--enable-new-dtags -lSDL2
-L/usr/local/lib -lavdevice -lavformat -lavcodec -lswscale -lavutil -lv4l2
-lvo-amrwbenc -L/drive/pjproject-2.7.2/pjlib/lib
-L/drive/pjproject-2.7.2/pjlib-util/lib -L/drive/pjproject-2.7.2/pjnath/lib
-L/drive/pjproject-2.7.2/pjmedia/lib -L/drive/pjproject-2.7.2/pjsip/lib
-L/drive/pjproject-2.7.2/third_party/lib -L/usr/local/lib
-Wl,-rpath,/usr/local/lib -Wl,--enable-new-dtags -lSDL2 -L/usr/local/lib
-lavdevice -lavformat -lavcodec -lswscale -lavutil -lv4l2 -lopenh264
-lstdc++ -L/usr/local/lib -Wl,-rpath,/usr/local/lib -Wl,--enable-new-dtags
-lSDL2 -L/usr/local/lib -lavdevice -lavformat -lavcodec -lswscale -lavutil
-lv4l2 -lopenh264 -lstdc++ -L/usr/local/lib -Wl,-rpath,/usr/local/lib
-Wl,--enable-new-dtags -lSDL2 -L/usr/local/lib -lavdevice -lavformat
-lavcodec -lswscale -lavutil -lv4l2 -lopenh264 -lstdc++
output/pjmedia-test-x86_64-unknown-linux-gnu/vid_codec_test.o: In function
enum_codecs': vid_codec_test.c:(.text+0x48): undefined reference to
pjmedia_vid_codec_mgr_enum_codecs'
output/pjmedia-test-x86_64-unknown-linux-gnu/vid_codec_test.o: In function
codec_put_frame': vid_codec_test.c:(.text+0x32a): undefined reference to
pjmedia_vid_port_get_passive_port'
output/pjmedia-test-x86_64-unknown-linux-gnu/vid_codec_test.o: In function
codec_on_event': vid_codec_test.c:(.text+0x3d5): undefined reference to
pjmedia_vid_port_get_stream'
vid_codec_test.c:(.text+0x3e9): undefined reference to
pjmedia_vid_dev_stream_set_cap' output/pjmedia-test-x86_64-unknown-linux-gnu/vid_codec_test.o: In function
encode_decode_test':
vid_codec_test.c:(.text+0x4b8): undefined reference to
pjmedia_vid_codec_mgr_find_codecs_by_id' vid_codec_test.c:(.text+0x4d8): undefined reference to
pjmedia_vid_dev_lookup'
vid_codec_test.c:(.text+0x4f8): undefined reference to
pjmedia_vid_dev_lookup' vid_codec_test.c:(.text+0x52f): undefined reference to
pjmedia_vid_codec_mgr_find_codecs_by_id'
vid_codec_test.c:(.text+0x558): undefined reference to
pjmedia_vid_codec_mgr_get_default_param' vid_codec_test.c:(.text+0x584): undefined reference to
pjmedia_vid_codec_mgr_alloc_codec'
vid_codec_test.c:(.text+0x601): undefined reference to
pjmedia_vid_port_param_default' vid_codec_test.c:(.text+0x610): undefined reference to
pjmedia_vid_dev_default_param'
vid_codec_test.c:(.text+0x653): undefined reference to
pjmedia_vid_port_stop' vid_codec_test.c:(.text+0x666): undefined reference to
pjmedia_vid_port_stop'
vid_codec_test.c:(.text+0x675): undefined reference to
pjmedia_vid_port_destroy' vid_codec_test.c:(.text+0x684): undefined reference to
pjmedia_vid_port_destroy'
vid_codec_test.c:(.text+0x6b7): undefined reference to
pjmedia_vid_codec_mgr_dealloc_codec' vid_codec_test.c:(.text+0x7b0): undefined reference to
pjmedia_format_get_video_format_detail'
vid_codec_test.c:(.text+0x7cc): undefined reference to
pjmedia_vid_port_create' vid_codec_test.c:(.text+0x825): undefined reference to
pjmedia_vid_port_create'
vid_codec_test.c:(.text+0x8db): undefined reference to
pjmedia_vid_port_connect' vid_codec_test.c:(.text+0x911): undefined reference to
pjmedia_vid_port_start'
vid_codec_test.c:(.text+0x91f): undefined reference to
pjmedia_vid_port_start' output/pjmedia-test-x86_64-unknown-linux-gnu/vid_codec_test.o: In function
vid_codec_test':
vid_codec_test.c:(.text+0xa1f): undefined reference to
pjmedia_vid_dev_subsys_init' vid_codec_test.c:(.text+0xa35): undefined reference to
pjmedia_codec_openh264_vid_init'
vid_codec_test.c:(.text+0xa4b): undefined reference to
pjmedia_codec_ffmpeg_vid_init' vid_codec_test.c:(.text+0xa63): undefined reference to
pjmedia_codec_ffmpeg_vid_deinit'
vid_codec_test.c:(.text+0xa68): undefined reference to
pjmedia_codec_openh264_vid_deinit' vid_codec_test.c:(.text+0xa6d): undefined reference to
pjmedia_vid_dev_subsys_shutdown'
output/pjmedia-test-x86_64-unknown-linux-gnu/vid_dev_test.o: In function
enum_devs': vid_dev_test.c:(.text+0x53): undefined reference to
pjmedia_vid_dev_count'
vid_dev_test.c:(.text+0x82): undefined reference to
pjmedia_vid_dev_get_info' vid_dev_test.c:(.text+0x10f): undefined reference to
pjmedia_get_video_format_info'
output/pjmedia-test-x86_64-unknown-linux-gnu/vid_dev_test.o: In function
loopback_test': vid_dev_test.c:(.text+0x251): undefined reference to
pjmedia_vid_dev_count'
vid_dev_test.c:(.text+0x29c): undefined reference to
pjmedia_vid_dev_get_info' vid_dev_test.c:(.text+0x2f9): undefined reference to
pjmedia_vid_dev_get_info'
vid_dev_test.c:(.text+0x36f): undefined reference to
pjmedia_format_init_video' vid_dev_test.c:(.text+0x3b0): undefined reference to
pjmedia_vid_dev_get_info'
vid_dev_test.c:(.text+0x3e2): undefined reference to pjmedia_vid_port_stop' vid_dev_test.c:(.text+0x3f5): undefined reference to
pjmedia_vid_port_stop'
vid_dev_test.c:(.text+0x404): undefined reference to
pjmedia_vid_port_destroy' vid_dev_test.c:(.text+0x428): undefined reference to
pjmedia_vid_port_destroy'
vid_dev_test.c:(.text+0x481): undefined reference to
pjmedia_vid_dev_get_info' vid_dev_test.c:(.text+0x4a1): undefined reference to
pjmedia_vid_port_param_default'
vid_dev_test.c:(.text+0x4b2): undefined reference to
pjmedia_vid_dev_default_param' vid_dev_test.c:(.text+0x51d): undefined reference to
pjmedia_format_get_video_format_detail'
vid_dev_test.c:(.text+0x53d): undefined reference to
pjmedia_vid_port_create' vid_dev_test.c:(.text+0x555): undefined reference to
pjmedia_vid_dev_default_param'
vid_dev_test.c:(.text+0x5cd): undefined reference to
pjmedia_vid_port_create' vid_dev_test.c:(.text+0x5f4): undefined reference to
pjmedia_vid_port_get_passive_port'
vid_dev_test.c:(.text+0x603): undefined reference to
pjmedia_vid_port_connect' vid_dev_test.c:(.text+0x615): undefined reference to
pjmedia_vid_port_start'
vid_dev_test.c:(.text+0x627): undefined reference to
pjmedia_vid_port_start' vid_dev_test.c:(.text+0x6c6): undefined reference to
pjmedia_get_video_format_info'
output/pjmedia-test-x86_64-unknown-linux-gnu/vid_dev_test.o: In function
vid_dev_test': vid_dev_test.c:(.text+0x789): undefined reference to
pjmedia_vid_dev_subsys_init'
vid_dev_test.c:(.text+0x79d): undefined reference to
pjmedia_vid_dev_subsys_shutdown' output/pjmedia-test-x86_64-unknown-linux-gnu/vid_port_test.o: In function
find_device':
vid_port_test.c:(.text+0x4b): undefined reference to pjmedia_vid_dev_count' vid_port_test.c:(.text+0x68): undefined reference to
pjmedia_vid_dev_get_info'
output/pjmedia-test-x86_64-unknown-linux-gnu/vid_port_test.o: In function
capture_render_loopback': vid_port_test.c:(.text+0x137): undefined reference to
pjmedia_vid_dev_get_info'
vid_port_test.c:(.text+0x169): undefined reference to
pjmedia_vid_port_stop' vid_port_test.c:(.text+0x178): undefined reference to
pjmedia_vid_port_stop'
vid_port_test.c:(.text+0x187): undefined reference to
pjmedia_vid_port_destroy' vid_port_test.c:(.text+0x1ab): undefined reference to
pjmedia_vid_port_destroy'
vid_port_test.c:(.text+0x203): undefined reference to
pjmedia_vid_port_stop' vid_port_test.c:(.text+0x234): undefined reference to
pjmedia_vid_dev_get_info'
vid_port_test.c:(.text+0x257): undefined reference to
pjmedia_vid_port_param_default' vid_port_test.c:(.text+0x265): undefined reference to
pjmedia_vid_dev_default_param'
vid_port_test.c:(.text+0x2c8): undefined reference to
pjmedia_format_get_video_format_detail' vid_port_test.c:(.text+0x2e4): undefined reference to
pjmedia_vid_port_create'
vid_port_test.c:(.text+0x2fa): undefined reference to
pjmedia_vid_dev_default_param' vid_port_test.c:(.text+0x35a): undefined reference to
pjmedia_vid_port_create'
vid_port_test.c:(.text+0x395): undefined reference to
pjmedia_get_video_format_info' vid_port_test.c:(.text+0x42d): undefined reference to
pjmedia_vid_port_get_passive_port'
vid_port_test.c:(.text+0x43c): undefined reference to
pjmedia_vid_port_connect' vid_port_test.c:(.text+0x454): undefined reference to
pjmedia_vid_port_start'
vid_port_test.c:(.text+0x46c): undefined reference to
pjmedia_vid_port_get_passive_port' vid_port_test.c:(.text+0x47d): undefined reference to
pjmedia_vid_port_start'
output/pjmedia-test-x86_64-unknown-linux-gnu/vid_port_test.o: In function
vid_port_test': vid_port_test.c:(.text+0x4e6): undefined reference to
pjmedia_vid_dev_subsys_init'
vid_port_test.c:(.text+0x5de): undefined reference to
pjmedia_format_init_video' vid_port_test.c:(.text+0x64d): undefined reference to
pjmedia_vid_dev_subsys_shutdown'
output/pjmedia-test-x86_64-unknown-linux-gnu/test.o: In function
test_main': test.c:(.text+0xee): undefined reference to
pjmedia_video_format_mgr_create'
test.c:(.text+0x10e): undefined reference to pjmedia_vid_codec_mgr_create' test.c:(.text+0x173): undefined reference to
pjmedia_video_format_mgr_instance'
test.c:(.text+0x17b): undefined reference to
pjmedia_video_format_mgr_destroy' test.c:(.text+0x19a): undefined reference to
pjmedia_vid_codec_mgr_instance'
test.c:(.text+0x1a2): undefined reference to `pjmedia_vid_codec_mgr_destroy'
collect2: error: ld returned 1 exit status