使用 msys2 构建 pjsip 2.10
Build pjsip 2.10 using msys2
我正在使用 msys2 编译 pjsip 2.10:
1) 打开 msys2 控制台:C:\msys64\msys2_shell.cmd
2) 运行 要更新的:
pacman -Sy
pacman --needed -S bash pacman pacman-mirrors msys2-runtime
pacman -Su
pacman -S perl
pacman -S mingw-w64-i686-toolchain mingw-w64-x86_64-toolchain
pacman -S base-devel
3) 重新启动 msys2 控制台
4) 导出 PATH="/c/msys64/mingw32/bin/:$PATH"
5) 配置:
./configure --prefix=$PWD/dist_mingw --disable-ffmpeg --enable-shared --disable-video --disable-speex-aec --disable-speex-aec --disable-g711-codec --disable-l16-codec --disable-gsm-codec --disable-g722-codec --disable-g7221-codec --disable-speex-codec --disable-ilbc-codec --disable-vpx --disable-opus --disable-libyuv --disable-libwebrtc
6) make CFLAGS+="-DPJ_WIN32=1 -DPJ_M_I386=1 -D_LIB -DWIN32 -DPJ_M_I386=1"
7) 但是报错:
output/pjlib-x86_64-pc-msys/log.o:log.c:(.text+0xcb): undefined reference to `pj_time_decode'
output/pjlib-x86_64-pc-msys/ssl_sock_ossl.o:ssl_sock_ossl.c:(.text+0x205): undefined reference to `pj_time_encode'
output/pjlib-x86_64-pc-msys/ssl_sock_dump.o:ssl_sock_dump.c:(.text+0x9c): undefined reference to `pj_time_decode'
output/pjlib-x86_64-pc-msys/ssl_sock_dump.o:ssl_sock_dump.c:(.text+0xb2): undefined reference to `pj_time_decode'
8) 如我所见,pj_time_encode
在 pjproject-2.10\pjlib\src\pj\os_time_win32.c
中,但此文件未编译。相反,编译了文件 os_time_unix.c
。我认为这是原因。那么如何使文件 os_time_win32.c
被编译而不是 os_time_unix.c
.
我不擅长 makefile,所以我很难自定义构建。非常感谢!
在我的 MSYS 环境中,PJSIP 2.10 编译良好(将 x86_64-w64-mingw32
替换为 i686-w64-mingw32
用于 32 位):
./configure --build=x86_64-w64-mingw32 --host=x86_64-w64-mingw32 --enable-shared --enable-libsamplerate --with-external-speex --with-external-gsm --with-external-srtp --with-external-pa &&
make dep &&
make &&
echo SUCCESS
我自己首先编译了依赖项,因此有 with-external-
标志。
我正在使用 msys2 编译 pjsip 2.10:
1) 打开 msys2 控制台:C:\msys64\msys2_shell.cmd
2) 运行 要更新的:
pacman -Sy
pacman --needed -S bash pacman pacman-mirrors msys2-runtime
pacman -Su
pacman -S perl
pacman -S mingw-w64-i686-toolchain mingw-w64-x86_64-toolchain
pacman -S base-devel
3) 重新启动 msys2 控制台
4) 导出 PATH="/c/msys64/mingw32/bin/:$PATH"
5) 配置:
./configure --prefix=$PWD/dist_mingw --disable-ffmpeg --enable-shared --disable-video --disable-speex-aec --disable-speex-aec --disable-g711-codec --disable-l16-codec --disable-gsm-codec --disable-g722-codec --disable-g7221-codec --disable-speex-codec --disable-ilbc-codec --disable-vpx --disable-opus --disable-libyuv --disable-libwebrtc
6) make CFLAGS+="-DPJ_WIN32=1 -DPJ_M_I386=1 -D_LIB -DWIN32 -DPJ_M_I386=1"
7) 但是报错:
output/pjlib-x86_64-pc-msys/log.o:log.c:(.text+0xcb): undefined reference to `pj_time_decode'
output/pjlib-x86_64-pc-msys/ssl_sock_ossl.o:ssl_sock_ossl.c:(.text+0x205): undefined reference to `pj_time_encode'
output/pjlib-x86_64-pc-msys/ssl_sock_dump.o:ssl_sock_dump.c:(.text+0x9c): undefined reference to `pj_time_decode'
output/pjlib-x86_64-pc-msys/ssl_sock_dump.o:ssl_sock_dump.c:(.text+0xb2): undefined reference to `pj_time_decode'
8) 如我所见,pj_time_encode
在 pjproject-2.10\pjlib\src\pj\os_time_win32.c
中,但此文件未编译。相反,编译了文件 os_time_unix.c
。我认为这是原因。那么如何使文件 os_time_win32.c
被编译而不是 os_time_unix.c
.
我不擅长 makefile,所以我很难自定义构建。非常感谢!
在我的 MSYS 环境中,PJSIP 2.10 编译良好(将 x86_64-w64-mingw32
替换为 i686-w64-mingw32
用于 32 位):
./configure --build=x86_64-w64-mingw32 --host=x86_64-w64-mingw32 --enable-shared --enable-libsamplerate --with-external-speex --with-external-gsm --with-external-srtp --with-external-pa &&
make dep &&
make &&
echo SUCCESS
我自己首先编译了依赖项,因此有 with-external-
标志。