Hi Walter, Thanks for the patch and the detail info. And yes, this is the right channel to submit a patch :) We'll review this internally first and get back to you as soon as possible. BR, nanang On Wed, Feb 24, 2016 at 4:35 PM, Walter Doekes <walter+pjsip at wjd.nu> wrote: > Hi there PJProject devs. > > When compiling Asterisk, I encountered an error similar to this: > https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=804460 > > The linker was told to include shared libraries that did not exist on the > system: > > x86_64-linux-gnu-gcc -o pjsip/dialplan_functions.o -c > ... > -lpjsua2 -lstdc++ -lpjsua -lpjsip-ua -lpjsip-simple > -lpjsip -lpjmedia-codec -lpjmedia -lpjmedia-videodev > -lpjmedia-audiodev -lpjmedia -lpjnath -lpjlib-util > -lsrtp -lpj -lm -lrt -lpthread -lSDL2 -lavformat-ffmpeg > -lavcodec-ffmpeg -lswscale-ffmpeg -lavutil-ffmpeg -lv4l2 > -lopencore-amrnb -lopencore-amrwb > /usr/bin/ld: cannot find -lSDL2 > /usr/bin/ld: cannot find -lavformat-ffmpeg > ... > > > I believe that the problem is caused by pkg-config --libs telling us to > include more libs than it should. > > For example, on this system, it says: > > $ pkg-config --libs libpjproject > -L/usr/local/lib -lpjsua2 -lstdc++ -lpjsua -lpjsip-ua > -lpjsip-simple - lpjsip -lpjmedia-codec -lpjmedia-videodev > -lpjmedia-audiodev -lpjmedia -lpjnath -lpjlib-util -lsrtp > -lgsmcodec -lspeex -lilbccodec -lg7221codec -lpj -luuid -lm > -lrt -lpthread -lcrypto -lssl > > The -luuid and -lm and -lrt and a few more should not be in that list. > They are used and linked by libpjsip.so (and others), so we don't need to > link to them another time: > > $ ldd /usr/local/lib/libpjsip.so | grep uuid > libuuid.so.1 => /lib/x86_64-linux-gnu/libuuid.so.1 (0x00007fdf0a8da000) > > > Are more complete writeup is here: > http://wjd.nu/notes/2016#missing-sofiles-linker-asterisk > > > Attached is my attempt at fixing it. > > * It adds a new make target: libpjproject.pc > That way I didn't have to `make install` the entire time. > > * It replaces a few `rmdir` with `$(HOST_RMDIR)` (and friends) for > consistency. > > * For the libpjproject.pc target, it checks whether any *.so is built. > If so, it separates the dynamic libs from the privately used ones. > > * If no *.so is built, the libpjproject.pc is built as it was before > this change (with an additional empty "Libs.private" section). > This way we won't cause unintentional breakage for static builds. > > > Let me know if this works for you (and if this is the right channel to > submit a patch). > > Cheers! > Walter Doekes > OSSO B.V. > > ==== > > $ diff libpjproject.pc.original libpjproject.pc.after > 12a13 > > Libs.private: > > > $ cat libpjproject.pc.enable_shared | tail -n3 > Libs: -L${libdir} -lsrtp -lresample -lgsmcodec -lspeex -lilbccodec > -lg7221codec -lportaudio -lpjsua2 -lpjsua -lpjsip-ua -lpjsip-simple > -lpjsip -lpjmedia-codec -lpjmedia-videodev -lpjmedia -lpjmedia-audiodev > -lpjnath -lpjlib-util -lpj > Libs.private: -lstdc++ -lssl -lcrypto -luuid -lm -lrt -lpthread -lavcodec > -lavutil -lv4l2 > Cflags: -I${includedir} -I/usr/local/include -DPJ_AUTOCONF=1 -O2 > -DPJ_IS_BIG_ENDIAN=0 -DPJ_IS_LITTLE_ENDIAN=1 -fPIC > > > _______________________________________________ > Visit our blog: http://blog.pjsip.org > > pjsip mailing list > pjsip at lists.pjsip.org > http://lists.pjsip.org/mailman/listinfo/pjsip_lists.pjsip.org > > -------------- next part -------------- An HTML attachment was scrubbed... URL: <http://lists.pjsip.org/pipermail/pjsip_lists.pjsip.org/attachments/20160225/3149358d/attachment.html>