虚拟机ubuntu18(已经安装好aarch64-linux-gnu-编译工具)
目标板子是arm64
参考[1]建议ubuntu 通过apt install curl,然后查看curl稳定版本。
- $ curl -V
- curl 7.58.0 (x86_64-pc-linux-gnu) libcurl/7.58.0 OpenSSL/1.1.1 zlib/1.2.11 libidn2/2.0.4 libpsl/0.19.1 (+libidn2/2.0.4) nghttp2/1.30.0 librtmp/2.3
| openssl | https://www.openssl.org/source/ | openssl-1.1.1q.tar.gz |
| zlib | https://sourceforge.net/projects/libpng/files/zlib/ | zlib-1.2.11.tar.gz |
| curl | https://curl.se/download.html | curl 7.58.0.tar.gz |
解压
- $ tar -zvxf openssl-1.1.1q.tar.gz
- $ cd openssl-1.1.1q
- $ ./config --prefix=/home/xxjianvm/workspace/ext/install -fPIC no-shared no-asm --cross-compile-prefix=aarch64-linux-gnu- && sed -i 's/-m64//g' Makefile
- $ make -j8 && make install
zlib的configure不支持CC参数,因此需要export一下。
- $ tar -xvf zlib-1.2.11.tar.gz && cd zlib-1.2.11
- $ export CC=aarch64-linux-gnu-gcc
- $ ./configure --prefix=/home/xxjianvm/workspace/ext/install
- $ make -j8 && make install
- $ tar -xvf curl-7.58.0.tar.gz && cd curl-7.58.0
- $ ./configure --enable-static --prefix=/home/xxjianvm/workspace/ext/install --with-ssl=$WORK_DIR/ext/install --host=arm-linux CC=aarch64-linux-gnu-gcc CXX=aarch64-linux-gnu-g++
- $ make -j8 && make install
#include // http post
- int HttpLocalDnn()
- {
- CURL* curl = NULL;
- CURLcode res;
-
- curl = curl_easy_init();
- if(curl == NULL)
- {
- return CURLE_FAILED_INIT;
- }
-
- struct curl_slist* headerlist = NULL;
-
- // 设置表头,表头内容可能不同
- headerlist = curl_slist_append(headerlist, "Content-Type:application/x-www-form-urlencoded");
- curl_easy_setopt(curl, CURLOPT_HTTPHEADER, headerlist);
-
- // 设置URL
- curl_easy_setopt(curl, CURLOPT_URL, "http://192.168.1.102:8383/api");
-
- // 设置为Post
- curl_easy_setopt(curl, CURLOPT_POST, 1);
- curl_easy_setopt(curl, CURLOPT_POSTFIELDS, "hello");
-
- // 发送
- res = curl_easy_perform(curl);
-
- if(res != CURLE_OK)
- {
- // 获取详细错误信息
- char* szErr = (char*)curl_easy_strerror(res);
- fprintf(stderr, "curl_easy_perform() failed: %s\n", szErr);
- }
-
- // 清空
- curl_easy_cleanup(curl);
-
- // 释放表头
- curl_slist_free_all (headerlist);
-
- return 0;
- }
参考[1]:curl源码编译安装,https://blog.csdn.net/peng314899581/article/details/88845213
参考[2]:[转]C++ 使用 curl 进行 http 请求(GET、POST、Download)的封装,https://www.cnblogs.com/lyggqm/p/11450555.html