У меня есть открытый исходный код для VPNC Linux на основе языка C ++. Ссылка для скачивания: http://www.unix-ag.uni-kl.de/~massar/vpnc/ (я использую vpnc-0.5.3.tar.gz).
Итак, я хочу собрать весь исходный код в библиотеку .so, используя Android ndk и Cygwin на Windows.
Во-первых, когда я компилирую исходный код в cygwin, у меня появляется ошибка: «grcypt.h нет такого файла или каталога», и я решил ее, вставив файл gcrypt.h в папку jni в проекте android. Но я ввожу проблему ниже:
$ /cygdrive/C/Working/Ke/Android/android-ndk-r8b/ndk-build
SharedLibrary : libvpnc.so
./obj/local/armeabi/objs/vpnc/vpnc.o: In function `lifetime_ike_process':
C:\Working\Ke\Projects\Eclipse\AndroidVpnc/jni/vpnc.c:1171: undefined reference to `opt_debug'
./obj/local/armeabi/objs/vpnc/vpnc.o: In function `lifetime_ipsec_process':
C:\Working\Ke\Projects\Eclipse\AndroidVpnc/jni/vpnc.c:1189: undefined reference to `opt_debug'
./obj/local/armeabi/objs/vpnc/vpnc.o: In function `make_socket':
C:\Working\Ke\Projects\Eclipse\AndroidVpnc/jni/vpnc.c:242: undefined reference to `error'
C:\Working\Ke\Projects\Eclipse\AndroidVpnc/jni/vpnc.c:219: undefined reference to `error'
C:\Working\Ke\Projects\Eclipse\AndroidVpnc/jni/vpnc.c:231: undefined reference to `error'
C:\Working\Ke\Projects\Eclipse\AndroidVpnc/jni/vpnc.c:238: undefined reference to `error'
./obj/local/armeabi/objs/vpnc/vpnc.o: In function `isakmp_crypt':
C:\Working\Ke\Projects\Eclipse\AndroidVpnc/jni/vpnc.c:531: undefined reference to `xallocc'
C:\Working\Ke\Projects\Eclipse\AndroidVpnc/jni/vpnc.c:532: undefined reference to `gcry_cipher_open'
C:\Working\Ke\Projects\Eclipse\AndroidVpnc/jni/vpnc.c:533: undefined reference to `gcry_cipher_setkey'
Пожалуйста, дайте мне решение этой проблемы.
Большое спасибо.
Вы должны также включить библиотеки, которые содержат opt_debug, error, xalloc, gcry_cipher_open и gcry_cipher_setkey.
Других решений пока нет …