Android swig "undefined reference to 'pjsua_vid_conf_enum_ports'"

LB
Li, Bing
Wed, May 8, 2019 9:35 PM

Hi,

I'm trying to git/master (316c315) for our Android app.

#TARGET_ABI=armeabi-v7a ./configure-android --use-ndk-cflags
This command built successfully.

But it failed when I run "make" in pjsip-apps/src/swig.

Any idea about the error "undefined reference to
'pjsua_vid_conf_enum_ports'" ?

root@Ubuntu1604-server-x8664:/opt/pjproject/pjsip-apps/src/swig# make
for dir in java csharp; do
if make  -C $dir all; then
true;
else
exit 1;
fi;
done
make[1]: Entering directory '/opt/pjproject/pjsip-apps/src/swig/java'
mkdir -p android/app/src/main/jniLibs/armeabi-v7a
/opt/android-ndk-r19c/toolchains/llvm/prebuilt/linux-x86_64/bin/clang++
-shared -o android/app/src/main/jniLibs/armeabi-v7a/libpjsua2.so
output/pjsua2_wrap.o
-shared -lgcc -Wl,--exclude-libs,libgcc.a -latomic
-Wl,--exclude-libs,libatomic.a -target armv7-none-linux-androideabi19
-no-canonical-prefixes -Wl,--build-id -Wl,--no-undefined -Wl,-z,noexecstack
-Wl,-z,relro -Wl,-z,now -Wl,--warn-shared-textrel -Wl,--fatal-warnings -lc
-lm -fexceptions -frtti -DPJ_AUTOCONF=1 -target
armv7-none-linux-androideabi19 -fdata-sections -ffunction-sections
-funwind-tables -no-canonical-prefixes --sysroot
/opt/android-ndk-r19c/toolchains/llvm/prebuilt/linux-x86_64/sysroot
-Wno-invalid-command-line-argument -Wno-unused-command-line-argument
-fno-addrsig -fpic -mfpu=vfpv3-d16 -march=armv7-a -mthumb -Oz -DNDEBUG
-Ijni -DANDROID -Wa,--noexecstack -Wformat -Werror=format-security
-I/opt/android-ndk-r19c/sources/cxx-stl/llvm-libc++/include
-DPJ_IS_BIG_ENDIAN=0 -DPJ_IS_LITTLE_ENDIAN=1
-I/opt/pjproject/pjlib/include -I/opt/pjproject/pjlib-util/include
-I/opt/pjproject/pjnath/include -I/opt/pjproject/pjmedia/include
-I/opt/pjproject/pjsip/include -fPIC -D__ANDROID__
-L/opt/pjproject/pjlib/lib -L/opt/pjproject/pjlib-util/lib
-L/opt/pjproject/pjnath/lib -L/opt/pjproject/pjmedia/lib
-L/opt/pjproject/pjsip/lib -L/opt/pjproject/third_party/lib
--sysroot=
-L/opt/android-ndk-r19c/sources/cxx-stl/llvm-libc++/libs/armeabi-v7a/
-lpjsua2-armv7-unknown-linux-android -lstdc++
-lpjsua-armv7-unknown-linux-android -lpjsip-ua-armv7-unknown-linux-android
-lpjsip-simple-armv7-unknown-linux-android
-lpjsip-armv7-unknown-linux-android
-lpjmedia-codec-armv7-unknown-linux-android
-lpjmedia-armv7-unknown-linux-android
-lpjmedia-videodev-armv7-unknown-linux-android
-lpjmedia-audiodev-armv7-unknown-linux-android
-lpjmedia-armv7-unknown-linux-android -lpjnath-armv7-unknown-linux-android
-lpjlib-util-armv7-unknown-linux-android
-lsrtp-armv7-unknown-linux-android -lresample-armv7-unknown-linux-android
-lgsmcodec-armv7-unknown-linux-android -lspeex-armv7-unknown-linux-android
-lilbccodec-armv7-unknown-linux-android
-lg7221codec-armv7-unknown-linux-android -lyuv-armv7-unknown-linux-android
-lwebrtc-armv7-unknown-linux-android  -lpj-armv7-unknown-linux-android -lm
-lc++_static -lc++abi  -lc -lgcc -ldl -lOpenSLES -llog -lGLESv2 -lEGL
-landroid -Wl,-soname,libpjsua2.so
/opt/pjproject/pjsip/lib/libpjsua2-armv7-unknown-linux-android.a(endpoint.o):endpoint.cpp:function
pj::Endpoint::mediaEnumVidPorts() const: error: undefined reference to
'pjsua_vid_conf_enum_ports'
/opt/pjproject/pjsip/lib/libpjsua2-armv7-unknown-linux-android.a(media.o):media.cpp:function
pj::VideoMedia::registerMediaPort(void*, pj_pool_t*): error: undefined
reference to 'pjsua_vid_conf_add_port'
/opt/pjproject/pjsip/lib/libpjsua2-armv7-unknown-linux-android.a(media.o):media.cpp:function
pj::VideoMedia::unregisterMediaPort(): error: undefined reference to
'pjsua_vid_conf_remove_port'
/opt/pjproject/pjsip/lib/libpjsua2-armv7-unknown-linux-android.a(media.o):media.cpp:function
pj::VideoMedia::getPortInfoFromId(int): error: undefined reference to
'pjsua_vid_conf_get_port_info'
/opt/pjproject/pjsip/lib/libpjsua2-armv7-unknown-linux-android.a(media.o):media.cpp:function
pj::VideoMedia::startTransmit(pj::VideoMedia const&,
pj::VideoMediaTransmitParam const&) const: error: undefined reference to
'pjsua_vid_conf_connect'
/opt/pjproject/pjsip/lib/libpjsua2-armv7-unknown-linux-android.a(media.o):media.cpp:function
pj::VideoMedia::stopTransmit(pj::VideoMedia const&) const: error: undefined
reference to 'pjsua_vid_conf_disconnect'
clang++: error: linker command failed with exit code 1 (use -v to see
invocation)
Makefile:165: recipe for target
'android/app/src/main/jniLibs/armeabi-v7a/libpjsua2.so' failed
make[1]: *** [android/app/src/main/jniLibs/armeabi-v7a/libpjsua2.so] Error 1
make[1]: Leaving directory '/opt/pjproject/pjsip-apps/src/swig/java'
Makefile:27: recipe for target 'all' failed
make: *** [all] Error 1

Thanks,
Bing

Hi, I'm trying to git/master (316c315) for our Android app. #TARGET_ABI=armeabi-v7a ./configure-android --use-ndk-cflags This command built successfully. But it failed when I run "make" in pjsip-apps/src/swig. Any idea about the error "undefined reference to 'pjsua_vid_conf_enum_ports'" ? root@Ubuntu1604-server-x8664:/opt/pjproject/pjsip-apps/src/swig# make for dir in java csharp; do \ if make -C $dir all; then \ true; \ else \ exit 1; \ fi; \ done make[1]: Entering directory '/opt/pjproject/pjsip-apps/src/swig/java' mkdir -p android/app/src/main/jniLibs/armeabi-v7a /opt/android-ndk-r19c/toolchains/llvm/prebuilt/linux-x86_64/bin/clang++ -shared -o android/app/src/main/jniLibs/armeabi-v7a/libpjsua2.so output/pjsua2_wrap.o \ -shared -lgcc -Wl,--exclude-libs,libgcc.a -latomic -Wl,--exclude-libs,libatomic.a -target armv7-none-linux-androideabi19 -no-canonical-prefixes -Wl,--build-id -Wl,--no-undefined -Wl,-z,noexecstack -Wl,-z,relro -Wl,-z,now -Wl,--warn-shared-textrel -Wl,--fatal-warnings -lc -lm -fexceptions -frtti -DPJ_AUTOCONF=1 -target armv7-none-linux-androideabi19 -fdata-sections -ffunction-sections -funwind-tables -no-canonical-prefixes --sysroot /opt/android-ndk-r19c/toolchains/llvm/prebuilt/linux-x86_64/sysroot -Wno-invalid-command-line-argument -Wno-unused-command-line-argument -fno-addrsig -fpic -mfpu=vfpv3-d16 -march=armv7-a -mthumb -Oz -DNDEBUG -Ijni -DANDROID -Wa,--noexecstack -Wformat -Werror=format-security -I/opt/android-ndk-r19c/sources/cxx-stl/llvm-libc++/include -DPJ_IS_BIG_ENDIAN=0 -DPJ_IS_LITTLE_ENDIAN=1 -I/opt/pjproject/pjlib/include -I/opt/pjproject/pjlib-util/include -I/opt/pjproject/pjnath/include -I/opt/pjproject/pjmedia/include -I/opt/pjproject/pjsip/include -fPIC -D__ANDROID__ -L/opt/pjproject/pjlib/lib -L/opt/pjproject/pjlib-util/lib -L/opt/pjproject/pjnath/lib -L/opt/pjproject/pjmedia/lib -L/opt/pjproject/pjsip/lib -L/opt/pjproject/third_party/lib --sysroot= -L/opt/android-ndk-r19c/sources/cxx-stl/llvm-libc++/libs/armeabi-v7a/ -lpjsua2-armv7-unknown-linux-android -lstdc++ -lpjsua-armv7-unknown-linux-android -lpjsip-ua-armv7-unknown-linux-android -lpjsip-simple-armv7-unknown-linux-android -lpjsip-armv7-unknown-linux-android -lpjmedia-codec-armv7-unknown-linux-android -lpjmedia-armv7-unknown-linux-android -lpjmedia-videodev-armv7-unknown-linux-android -lpjmedia-audiodev-armv7-unknown-linux-android -lpjmedia-armv7-unknown-linux-android -lpjnath-armv7-unknown-linux-android -lpjlib-util-armv7-unknown-linux-android -lsrtp-armv7-unknown-linux-android -lresample-armv7-unknown-linux-android -lgsmcodec-armv7-unknown-linux-android -lspeex-armv7-unknown-linux-android -lilbccodec-armv7-unknown-linux-android -lg7221codec-armv7-unknown-linux-android -lyuv-armv7-unknown-linux-android -lwebrtc-armv7-unknown-linux-android -lpj-armv7-unknown-linux-android -lm -lc++_static -lc++abi -lc -lgcc -ldl -lOpenSLES -llog -lGLESv2 -lEGL -landroid -Wl,-soname,libpjsua2.so /opt/pjproject/pjsip/lib/libpjsua2-armv7-unknown-linux-android.a(endpoint.o):endpoint.cpp:function pj::Endpoint::mediaEnumVidPorts() const: error: undefined reference to 'pjsua_vid_conf_enum_ports' /opt/pjproject/pjsip/lib/libpjsua2-armv7-unknown-linux-android.a(media.o):media.cpp:function pj::VideoMedia::registerMediaPort(void*, pj_pool_t*): error: undefined reference to 'pjsua_vid_conf_add_port' /opt/pjproject/pjsip/lib/libpjsua2-armv7-unknown-linux-android.a(media.o):media.cpp:function pj::VideoMedia::unregisterMediaPort(): error: undefined reference to 'pjsua_vid_conf_remove_port' /opt/pjproject/pjsip/lib/libpjsua2-armv7-unknown-linux-android.a(media.o):media.cpp:function pj::VideoMedia::getPortInfoFromId(int): error: undefined reference to 'pjsua_vid_conf_get_port_info' /opt/pjproject/pjsip/lib/libpjsua2-armv7-unknown-linux-android.a(media.o):media.cpp:function pj::VideoMedia::startTransmit(pj::VideoMedia const&, pj::VideoMediaTransmitParam const&) const: error: undefined reference to 'pjsua_vid_conf_connect' /opt/pjproject/pjsip/lib/libpjsua2-armv7-unknown-linux-android.a(media.o):media.cpp:function pj::VideoMedia::stopTransmit(pj::VideoMedia const&) const: error: undefined reference to 'pjsua_vid_conf_disconnect' clang++: error: linker command failed with exit code 1 (use -v to see invocation) Makefile:165: recipe for target 'android/app/src/main/jniLibs/armeabi-v7a/libpjsua2.so' failed make[1]: *** [android/app/src/main/jniLibs/armeabi-v7a/libpjsua2.so] Error 1 make[1]: Leaving directory '/opt/pjproject/pjsip-apps/src/swig/java' Makefile:27: recipe for target 'all' failed make: *** [all] Error 1 Thanks, Bing