ubuntu20.04编译 pjproject-2.7.1
一.recompile with -fPIE
分析:需要重新编译并且带上 -fPIE,-fPIE可以使生成的可执行文件在任意内存都可以运行。
解决方法:加上了这两个选项
./configure CFLAGS="-fPIC -fPIE" CXXFLAGS="-fPIC -fPIE"LDFLAGS="-pie" --enable-srtp --enable-shared --prefix=...make depmake -j8make install
- 我在编译自己项目的时候并没有使用-fPIE,应该是有其他依赖的问题无法使用-fPIE
二.静态库链接动态库,静态库放在后面
但是编译出来的pjproject库依赖ssl,两个都是静态库,这个时候需要把ssl放到pjproject库后面才能编译通过,不是很明白
TARGET_LINK_LIBRARIES(${EXE_NAME} -lpjsua2-x86_64-unknown-linux-gnu
... -lpjsua-x86_64-unknown-linux-gnu -lpjsip-ua--lasound)
TARGET_LINK_LIBRARIES(${EXE_NAME} libssl.a libcrypto.a)
# TARGET_LINK_LIBRARIES(${EXE_NAME} -lssl -lcrypto)
TARGET_LINK_LIBRARIES(${EXE_NAME} -lstdc++)
TARGET_LINK_LIBRARIES(${EXE_NAME} libglog.a libgflags.a)
TARGET_LINK_LIBRARIES(${EXE_NAME} ${UUID_LIBRARY} -ldl -lpthread)