Собрать pjsip 2.10 с помощью msys2

Я компилирую pjsip 2.10 с помощью msys2:
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) export 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, поэтому мне трудно настраивать сборку. Большое спасибо!


person aviit    schedule 29.05.2020    source источник
comment
Вы можете обратиться к мейнтейнеру(ам) pjsip. Если они поддерживают сборки Windows, они смогут помочь.   -  person David Macek    schedule 29.05.2020


Ответы (1)


В моей среде 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-.

person Brecht Sanders    schedule 02.06.2020