curl:curl-7.59.0
ssl:mbedtls-mbedtls-2.7.19
export CC=arm-linux-androideabi Cross compile and so on...
$ cd $curPath/code/mbedtls-mbedtls-2.7.19
$ make clean
$ export SHARED=1
$ export CFLAGS="-I$curPath/code/mbedtls-mbedtls-2.7.19/configs -DMBEDTLS_CONFIG_FILE='<config-ccm-psk-tls1_2.h>'"
$make
$make install DESTDIR=$curPath/code/lib4audit
$ cd -
编译成功并在目录./code/lib4audit/lib/得到三个库文件 libmbedtls.a libmbedx509.a libmbedcrypto.a
编译CRUL库
$ cd $curPath/code/curl-7.59.0/
$export LDFLAGS="$curPath/code/lib4audit/lib/libmbedtls.a $curPath/code/lib4audit/lib/libmbedx509.a $curPath/code/lib4audit/lib/libmbedcrypto.a"
$./configure --host=$HOST --prefix=$curPath/code/lib4audit --with-mbedtls=$curPath/code/lib4audit --enable-optimize --disable-debug --disable-curldebug --disable-symbol-hiding --disable-dict --disable-gopher --disable-imap --disable-pop3 --disable-rtsp --disable-smtp --disable-telnet --disable-sspi --disable-smb --disable-ntlm-wb --disable-tls-srp --disable-soname-bump --disable-manual --disable-file --disable-ldap --disable-ldaps --disable-tftp --enable-http --disable-ftp --disable-ipv6
$make
$make install
编译成功并在目录./code/lib4audit/lib/得到“libcurl.a”库文件 ,查看库配置 编译库支持SSL
$ ./code/lib4audit/bin/curl-config --features
SSL
UnixSockets
libz
AsynchDNS
NTLM
----------------------------------分割线-----------------------------------------
MY_LIBRARY_PATH = $pwd/code/lib4audit/lib/
特别说明:这个程序需要运行在第三方的设备里。我不打算使用动态库,因为第三方设备的系统可能没有对应的动态,这样编译虽然可执行文件大小 大一些,可以独立于设备与设备减小关联性。
LDFLAGS= -lm -lc -lz -L${MY_LIBRARY_PATH} ${MY_LIBRARY_PATH}/libmbedtls.a ${MY_LIBRARY_PATH}/libmbedx509.a ${MY_LIBRARY_PATH}/libmbedcrypto.a ${MY_LIBRARY_PATH}/libcurl.a ${MY_LIBRARY_PATH}/libpcap.a
DD+= -DPEER_BIGENDIAN
OBJS = main.o cJSON.o conf.o common.o upload.o aes_pkcs5padding.o log.o md5.o portal_info.o
.c.o:
$(CC) $(DD) -c $(CFLAGS) $*.c
all: simple
simple: $(OBJS)
$(CC) $(CFLAGS) -o $@ $(OBJS) $(LDFLAGS)
clean:
$(RM) -f *.o *~ simple
出现了一下报错,请问怎么处理。
aes_pkcs5padding.o:aes_pkcs5padding.c:function MBEDTLS_AES_CBC_PKCS5_BASE64_Encrypt: error: undefined reference to 'mbedtls_aes_crypt_cbc'
aes_pkcs5padding.o:aes_pkcs5padding.c:function MBEDTLS_AES_ECB_PKCS5_BASE64_Decrypt: error: undefined reference to 'mbedtls_base64_decode'
aes_pkcs5padding.o:aes_pkcs5padding.c:function MBEDTLS_AES_ECB_PKCS5_BASE64_Encrypt: error: undefined reference to 'mbedtls_base64_encode'
/home/route/plugin/T15/code/lib4audit/lib/libcurl.a(libcurl_la-mbedtls.o):mbedtls.c:function Curl_mbedtls_close: error: undefined reference to 'mbedtls_pk_free'
/home/route/plugin/T15/code/lib4audit/lib/libcurl.a(libcurl_la-mbedtls.o):mbedtls.c:function Curl_mbedtls_close: error: undefined reference to 'mbedtls_x509_crt_free'
/home/route/plugin/T15/code/lib4audit/lib/libcurl.a(libcurl_la-mbedtls.o):mbedtls.c:function Curl_mbedtls_close: error: undefined reference to 'mbedtls_x509_crt_free'
/home/route/plugin/T15/code/lib4audit/lib/libcurl.a(libcurl_la-mbedtls.o):mbedtls.c:function Curl_mbedtls_close: error: undefined reference to 'mbedtls_x509_crl_free'
/home/route/plugin/T15/code/lib4audit/lib/libcurl.a(libcurl_la-mbedtls.o):mbedtls.c:function mbed_connect_step2: error: undefined reference to 'mbedtls_strerror'
/home/route/plugin/T15/code/lib4audit/lib/libcurl.a(libcurl_la-mbedtls.o):mbedtls.c:function mbed_connect_step2: error: undefined reference to 'mbedtls_ssl_get_peer_cert'
/home/route/plugin/T15/code/lib4audit/lib/libcurl.a(libcurl_la-mbedtls.o):mbedtls.c:function mbed_connect_step2: error: undefined reference to 'mbedtls_x509_crt_info'
/home/route/plugin/T15/code/lib4audit/lib/libcurl.a(libcurl_la-mbedtls.o):mbedtls.c:function mbed_connect_step2: error: undefined reference to 'mbedtls_x509_crt_init'
/home/route/plugin/T15/code/lib4audit/lib/libcurl.a(libcurl_la-mbedtls.o):mbedtls.c:function mbed_connect_step2: error: undefined reference to 'mbedtls_x509_crt_parse_der'
/home/route/plugin/T15/code/lib4audit/lib/libcurl.a(libcurl_la-mbedtls.o):mbedtls.c:function mbed_connect_step2: error: undefined reference to 'mbedtls_x509_crt_free'
/home/route/plugin/T15/code/lib4audit/lib/libcurl.a(libcurl_la-mbedtls.o):mbedtls.c:function mbed_connect_step2: error: undefined reference to 'mbedtls_x509_crt_free'
/home/route/plugin/T15/code/lib4audit/lib/libcurl.a(libcurl_la-mbedtls.o):mbedtls.c:function mbed_connect_step2: error: undefined reference to 'mbedtls_pk_write_pubkey_der'
/home/route/plugin/T15/code/lib4audit/lib/libcurl.a(libcurl_la-mbedtls.o):mbedtls.c:function Curl_mbedtls_random: error: undefined reference to 'mbedtls_strerror'
/home/route/plugin/T15/code/lib4audit/lib/libcurl.a(libcurl_la-mbedtls.o):mbedtls.c:function Curl_mbedtls_random: error: undefined reference to 'mbedtls_strerror'
/home/route/plugin/T15/code/lib4audit/lib/libcurl.a(libcurl_la-mbedtls.o):mbedtls.c:function Curl_mbedtls_version: error: undefined reference to 'mbedtls_version_get_number'
/home/route/plugin/T15/code/lib4audit/lib/libcurl.a(libcurl_la-mbedtls.o):mbedtls.c:function mbed_connect_common: error: undefined reference to 'mbedtls_x509_crt_init'
/home/route/plugin/T15/code/lib4audit/lib/libcurl.a(libcurl_la-mbedtls.o):mbedtls.c:function mbed_connect_common: error: undefined reference to 'mbedtls_x509_crt_parse_file'
/home/route/plugin/T15/code/lib4audit/lib/libcurl.a(libcurl_la-mbedtls.o):mbedtls.c:function mbed_connect_common: error: undefined reference to 'mbedtls_x509_crt_parse_path'
/home/route/plugin/T15/code/lib4audit/lib/libcurl.a(libcurl_la-mbedtls.o):mbedtls.c:function mbed_connect_common: error: undefined reference to 'mbedtls_x509_crt_init'
/home/route/plugin/T15/code/lib4audit/lib/libcurl.a(libcurl_la-mbedtls.o):mbedtls.c:function mbed_connect_common: error: undefined reference to 'mbedtls_x509_crt_parse_file'
/home/route/plugin/T15/code/lib4audit/lib/libcurl.a(libcurl_la-mbedtls.o):mbedtls.c:function mbed_connect_common: error: undefined reference to 'mbedtls_pk_init'
/home/route/plugin/T15/code/lib4audit/lib/libcurl.a(libcurl_la-mbedtls.o):mbedtls.c:function mbed_connect_common: error: undefined reference to 'mbedtls_pk_parse_keyfile'
/home/route/plugin/T15/code/lib4audit/lib/libcurl.a(libcurl_la-mbedtls.o):mbedtls.c:function mbed_connect_common: error: undefined reference to 'mbedtls_strerror'
/home/route/plugin/T15/code/lib4audit/lib/libcurl.a(libcurl_la-mbedtls.o):mbedtls.c:function mbed_connect_common: error: undefined reference to 'mbedtls_x509_crl_init'
/home/route/plugin/T15/code/lib4audit/lib/libcurl.a(libcurl_la-mbedtls.o):mbedtls.c:function mbed_connect_common: error: undefined reference to 'mbedtls_x509_crl_parse_file'
/home/route/plugin/T15/code/lib4audit/lib/libcurl.a(libcurl_la-mbedtls.o):mbedtls.c:function mbed_connect_common: error: undefined reference to 'mbedtls_pk_can_do'
/home/route/plugin/T15/code/lib4audit/lib/libcurl.a(libcurl_la-mbedtls.o):mbedtls.c:function mbed_connect_common: error: undefined reference to 'mbedtls_ssl_conf_cert_profile'
/home/route/plugin/T15/code/lib4audit/lib/libcurl.a(libcurl_la-mbedtls.o):mbedtls.c:function mbed_connect_common: error: undefined reference to 'mbedtls_ssl_conf_renegotiation'
/home/route/plugin/T15/code/lib4audit/lib/libcurl.a(libcurl_la-mbedtls.o):mbedtls.c:function mbed_connect_common: error: undefined reference to 'mbedtls_ssl_conf_session_tickets'
/home/route/plugin/T15/code/lib4audit/lib/libcurl.a(libcurl_la-mbedtls.o):mbedtls.c:function mbed_connect_common: error: undefined reference to 'mbedtls_ssl_conf_ca_chain'
/home/route/plugin/T15/code/lib4audit/lib/libcurl.a(libcurl_la-mbedtls.o):mbedtls.c:function mbed_connect_common: error: undefined reference to 'mbedtls_ssl_set_hostname'
/home/route/plugin/T15/code/lib4audit/lib/libcurl.a(libcurl_la-mbedtls.o):mbedtls.c:function mbed_connect_common: error: undefined reference to 'mbedtls_ssl_conf_own_cert'
/home/route/plugin/T15/code/lib4audit/lib/libcurl.a(libcurl_la-curl_ntlm_core.o):curl_ntlm_core.c:function encrypt_des: error: undefined reference to 'mbedtls_des_key_set_parity'
/home/route/plugin/T15/code/lib4audit/lib/libcurl.a(libcurl_la-curl_ntlm_core.o):curl_ntlm_core.c:function encrypt_des: error: undefined reference to 'mbedtls_des_init'
/home/route/plugin/T15/code/lib4audit/lib/libcurl.a(libcurl_la-curl_ntlm_core.o):curl_ntlm_core.c:function encrypt_des: error: undefined reference to 'mbedtls_des_setkey_enc'
/home/route/plugin/T15/code/lib4audit/lib/libcurl.a(libcurl_la-curl_ntlm_core.o):curl_ntlm_core.c:function encrypt_des: error: undefined reference to 'mbedtls_des_crypt_ecb'
collect2: error: ld returned 1 exit status
请指教,谢谢啊