【QT+QGIS跨平台编译】之五:【curl+Qt跨平台编译】(一套代码、一套框架,跨平台编译)

news2024/11/15 8:24:19

文章目录

  • 一、curl介绍
  • 二、curl下载
  • 三、文件分析
  • 四、pro文件
  • 五、编译实践

一、curl介绍

curl(CommandLine Uniform Resource Locator)主要功能就是用不同的协议连接和沟通不同的服务器,相当封装了的socket。
libcurl支持http, https, ftp, gopher, telnet, dict, file, 和ldap 协议。libcurl同样支持HTTPS证书授权,HTTP POST, HTTP PUT, FTP 上传(当然你也可以使用PHP的ftp扩展), HTTP基本表单上传,代理,cookies和用户认证。


二、curl下载

curl网站:
libcurl
下载libcurl:
在这里插入图片描述
在这里插入图片描述
获取curl-7.86.0.tar.gz文件。


三、文件分析

解压缩curl-7.86.0.tar.gz文件。
进入curl-7.86.0/lib目录
在这里插入图片描述
CMakeLists.txt记录了要加载的文件目录、预定义项信息。

文件目录:
在这里插入图片描述
预定义项信息:
在这里插入图片描述


四、pro文件

配置config文件:

有config-win32.h、config-mac.h、config-linux.h

在这里插入图片描述
config-win32.h在文件夹下,不需修改。

基于config-mac.h,构建config-linux.h

config-linux.h文件信息:
在这里插入图片描述
在这里插入图片描述
config-mac.h文件信息:
在这里插入图片描述
在这里插入图片描述

配置头文件:

#头文件
HEADERS +=  ./altsvc.h \
            ./amigaos.h \
            ./arpa_telnet.h \
            ./asyn.h \
            ./bufref.h \
            ./c-hyper.h \
            ./conncache.h \
            ./connect.h \
            ./content_encoding.h \
            ./cookie.h \
            ./curl_addrinfo.h \
            ./curl_base64.h \
            ./curl_ctype.h \
            ./curl_des.h \
            ./curl_endian.h \
            ./curl_fnmatch.h \
            ./curl_get_line.h \
            ./curl_gethostname.h \
            ./curl_gssapi.h \
            ./curl_hmac.h \
            ./curl_krb5.h \
            ./curl_ldap.h \
            ./curl_md4.h \
            ./curl_md5.h \
            ./curl_memory.h \
            ./curl_memrchr.h \
            ./curl_multibyte.h \
            ./curl_ntlm_core.h \
            ./curl_ntlm_wb.h \
            ./curl_path.h \
            ./curl_printf.h \
            ./curl_range.h \
            ./curl_rtmp.h \
            ./curl_sasl.h \
            ./curl_setup.h \
            ./curl_setup_once.h \
            ./curl_sha256.h \
            ./curl_sspi.h \
            ./curl_threads.h \
            ./curlx.h \
            ./dict.h \
            ./doh.h \
            ./dotdot.h \
            ./dynbuf.h \
            ./easyif.h \
            ./easyoptions.h \
            ./escape.h \
            ./file.h \
            ./fileinfo.h \
            ./fopen.h \
            ./formdata.h \
            ./ftp.h \
            ./ftplistparser.h \
            ./getinfo.h \
            ./gopher.h \
            ./h2h3.h \
            ./hash.h \
            ./headers.h \
            ./hostip.h \
            ./hsts.h \
            ./http2.h \
            ./http_aws_sigv4.h \
            ./http_chunks.h \
            ./http_digest.h \
            ./http.h \
            ./http_negotiate.h \
            ./http_ntlm.h \
            ./http_proxy.h \
            ./if2ip.h \
            ./imap.h \
            ./inet_ntop.h \
            ./inet_pton.h \
            ./llist.h \
            ./memdebug.h \
            ./mime.h \
            ./mqtt.h \
            ./multihandle.h \
            ./multiif.h \
            ./netrc.h \
            ./nonblock.h \
            ./noproxy.h \
            ./parsedate.h \
            ./pingpong.h \
            ./pop3.h \
            ./progress.h \
            ./psl.h \
            ./quic.h \
            ./rand.h \
            ./rename.h \
            ./rtsp.h \
            ./select.h \
            ./sendf.h \
            ./setopt.h \
            ./setup-vms.h \
            ./share.h \
            ./sigpipe.h \
            ./slist.h \
            ./smb.h \
            ./smtp.h \
            ./sockaddr.h \
            ./socketpair.h \
            ./socks.h \
            ./speedcheck.h \
            ./splay.h \
            ./strcase.h \
            ./strdup.h \
            ./strerror.h \
            ./strtok.h \
            ./strtoofft.h \
            ./system_win32.h \
            ./telnet.h \
            ./tftp.h \
            ./timediff.h \
            ./timeval.h \
            ./transfer.h \
            ./urlapi-int.h \
            ./urldata.h \
            ./url.h \
            ./version_win32.h \
            ./warnless.h \
            ./wildcard.h \
            \
            ./vauth/digest.h \
            ./vauth/ntlm.h \
            ./vauth/vauth.h \
            \
            ./vquic/msh3.h \
            ./vquic/ngtcp2.h \
            ./vquic/quiche.h \
            ./vquic/vquic.h \
            \
            ./vssh\ssh.h \
            \
            ./vtls/bearssl.h \
            ./vtls/gskit.h \
            ./vtls/gtls.h \
            ./vtls/hostcheck.h \
            ./vtls/keylog.h \
            ./vtls/mbedtls.h \
            ./vtls/mbedtls_threadlock.h \
            ./vtls/nssg.h \
            ./vtls/openssl.h \
            ./vtls/rustls.h \
            ./vtls/schannel.h \
            ./vtls/sectransp.h \
            ./vtls/vtls.h \
            ./vtls/wolfssl.h \
            ./vtls/x509asn1.h
win32 {
    HEADERS += ./config-win32.h
}
linux* {
    HEADERS += ./config-linux.h
}
macx {
    HEADERS += ./config-mac.h
}

配置源文件:

#源文件
SOURCES +=  ./altsvc.c \
            ./amigaos.c \
            ./asyn-ares.c \
            ./asyn-thread.c \
            ./base64.c \
            ./bufref.c \
            ./c-hyper.c \
            ./conncache.c \
            ./connect.c \
            ./content_encoding.c \
            ./cookie.c \
            ./curl_addrinfo.c \
            ./curl_des.c \
            ./curl_endian.c \
            ./curl_fnmatch.c \
            ./curl_gethostname.c \
            ./curl_get_line.c \
            ./curl_gssapi.c \
            ./curl_memrchr.c \
            ./curl_multibyte.c \
            ./curl_ntlm_core.c \
            ./curl_ntlm_wb.c \
            ./curl_path.c \
            ./curl_range.c \
            ./curl_rtmp.c \
            ./curl_sasl.c \
            ./curl_sspi.c \
            ./curl_threads.c \
            ./dict.c \
            ./doh.c \
            ./dynbuf.c \
            ./easy.c \
            ./easygetopt.c \
            ./easyoptions.c \
            ./escape.c \
            ./file.c \
            ./fileinfo.c \
            ./fopen.c \
            ./formdata.c \
            ./ftp.c \
            ./ftplistparser.c \
            ./getenv.c \
            ./getinfo.c \
            ./gopher.c \
            ./h2h3.c \
            ./hash.c \
            ./headers.c \
            ./hmac.c \
            ./hostasyn.c \
            ./hostip4.c \
            ./hostip6.c \
            ./hostip.c \
            ./hostsyn.c \
            ./hsts.c \
            ./http2.c \
            ./http_aws_sigv4.c \
            ./http.c \
            ./http_chunks.c \
            ./http_digest.c \
            ./http_negotiate.c \
            ./http_ntlm.c \
            ./http_proxy.c \
            ./idn_win32.c \
            ./if2ip.c \
            ./imap.c \
            ./inet_ntop.c \
            ./inet_pton.c \
            ./krb5.c \
            ./ldap.c \
            ./llist.c \
            ./md4.c \
            ./md5.c \
            ./memdebug.c \
            ./mime.c \
            ./mprintf.c \
            ./mqtt.c \
            ./multi.c \
            ./netrc.c \
            ./nonblock.c \
            ./noproxy.c \
            ./openldap.c \
            ./parsedate.c \
            ./pingpong.c \
            ./pop3.c \
            ./progress.c \
            ./psl.c \
            ./rand.c \
            ./rename.c \
            ./rtsp.c \
            ./select.c \
            ./sendf.c \
            ./setopt.c \
            ./sha256.c \
            ./share.c \
            ./slist.c \
            ./smb.c \
            ./smtp.c \
            ./socketpair.c \
            ./socks.c \
            ./socks_gssapi.c \
            ./socks_sspi.c \
            ./speedcheck.c \
            ./splay.c \
            ./strcase.c \
            ./strdup.c \
            ./strerror.c \
            ./strtok.c \
            ./strtoofft.c \
            ./system_win32.c \
            ./telnet.c \
            ./tftp.c \
            ./timediff.c \
            ./timeval.c \
            ./transfer.c \
            ./urlapi.c \
            ./url.c \
            ./version.c \
            ./version_win32.c \
            ./warnless.c \
            ./wildcard.c \
            \
            ./vauth/cleartext.c \
            ./vauth/cram.c \
            ./vauth/digest.c \
            ./vauth/digest_sspi.c \
            ./vauth/gsasl.c \
            ./vauth/krb5_gssapi.c \
            ./vauth/krb5_sspi.c \
            ./vauth/ntlm.c \
            ./vauth/ntlm_sspi.c \
            ./vauth/oauth2.c \
            ./vauth/spnego_gssapi.c \
            ./vauth/spnego_sspi.c \
            ./vauth/vauth.c \
            \
            ./vquic/msh3.c \
            ./vquic/ngtcp2.c \
            ./vquic/quiche.c \
            ./vquic/vquic.c \
            \
            ./vssh/libssh2.c \
            ./vssh/libssh.c \
            ./vssh/wolfssh.c \
            \
            ./vtls/bearssl.c \
            ./vtls/gskit.c \
            ./vtls/gtls.c \
            ./vtls/hostcheck.c \
            ./vtls/keylog.c \
            ./vtls/mbedtls.c \
            ./vtls/mbedtls_threadlock.c \
            ./vtls/nss.c \
            ./vtls/openssl.c \
            ./vtls/rustls.c \
            ./vtls/schannel.c \
            ./vtls/schannel_verify.c \
            ./vtls/sectransp.c \
            ./vtls/vtls.c \
            ./vtls/wolfssl.c \
            ./vtls/x509asn1.c

预定义项信息:

DEFINES += BUILDING_LIBCURL USE_OPENSSL USE_LIBSSH2 USE_IPV6 HAVE_LIBSSH2_H HAVE_STRUCT_TIMEVAL
win32 {
    DEFINES += _CRT_SECURE_NO_DEPRECATE _CRT_NONSTDC_NO_DEPRECATE
}
linux* {
    DEFINES += linux
}
macx {
    DEFINES += macintosh __MRC__
}

依赖的库文件:

CONFIG(debug, debug|release){
    LIBS += -lssh2d
}else{
    LIBS += -lssh2
}
win32 {
    LIBS += -LD:/Qt/Tools/OpenSSL/Win_x64/lib
    LIBS += -llibcrypto -llibssl -lwldap32
    LIBS += -lcrypt32 -luser32 -lws2_32
}
linux* {
    LIBS += -lcrypto -lssl
}
macx {
    LIBS += -L/usr/local/opt/openssl@3/lib
    LIBS += -lcrypto -lssl
}

形成的004.curl-7.86.0.pro文件:

QT += core network

TEMPLATE = lib
CONFIG += c++17

DESTDIR = ../QGIS

CONFIG(debug, debug|release){
    MOC_DIR = ../build-QGIS/curl/Debug/moc
    RCC_DIR = ../build-QGIS/curl/Debug/rcc
    UI_DIR = ../build-QGIS/curl/Debug/ui
    OBJECTS_DIR = ../build-QGIS/curl/Debug/obj
}else{
    MOC_DIR = ../build-QGIS/curl/Release/moc
    RCC_DIR = ../build-QGIS/curl/Release/rcc
    UI_DIR = ../build-QGIS/curl/Release/ui
    OBJECTS_DIR = ../build-QGIS/curl/Release/obj
}

CONFIG(debug, debug|release){
    TARGET = curld
}else{
    TARGET = curl
}

#DEFINES -= UNICODE
DEFINES += BUILDING_LIBCURL USE_OPENSSL USE_LIBSSH2 USE_IPV6 HAVE_LIBSSH2_H HAVE_STRUCT_TIMEVAL
win32 {
    DEFINES += _CRT_SECURE_NO_DEPRECATE _CRT_NONSTDC_NO_DEPRECATE
}
linux* {
    DEFINES += linux
}
macx {
    DEFINES += macintosh __MRC__
}

# You can make your code fail to compile if it uses deprecated APIs.
# In order to do so, uncomment the following line.
#DEFINES += QT_DISABLE_DEPRECATED_BEFORE=0x060000    # disables all the APIs deprecated before Qt 6.0.0

#当前目录
INCLUDEPATH += ./ ./include ./vauth ./vquic ./vssh
#openssl路径
win32 {
    INCLUDEPATH += D:/Qt/Tools/OpenSSL/Win_x64/include
    INCLUDEPATH += D:/Qt/Tools/OpenSSL/Win_x64/include/openssl
}
linux* {
    INCLUDEPATH += /opt/Qt/Tools/OpenSSL/src/include
    INCLUDEPATH += /opt/Qt/Tools/OpenSSL/src/include/openssl
}
macx {
    INCLUDEPATH += /usr/local/opt/openssl@3/include
    INCLUDEPATH += /usr/local/opt/openssl@3/include/openssl
}

#SSH2路径
INCLUDEPATH += ../libssh2-1.10.0
#LIBS
LIBS += -L../QGIS
CONFIG(debug, debug|release){
    LIBS += -lssh2d
}else{
    LIBS += -lssh2
}
win32 {
    LIBS += -LD:/Qt/Tools/OpenSSL/Win_x64/lib
    LIBS += -llibcrypto -llibssl -lwldap32
    LIBS += -lcrypt32 -luser32 -lws2_32
}
linux* {
    LIBS += -lcrypto -lssl
}
macx {
    LIBS += -L/usr/local/opt/openssl@3/lib
    LIBS += -lcrypto -lssl
}

#头文件
HEADERS +=  ./altsvc.h \
            ./amigaos.h \
            ./arpa_telnet.h \
            ./asyn.h \
            ./bufref.h \
            ./c-hyper.h \
            ./conncache.h \
            ./connect.h \
            ./content_encoding.h \
            ./cookie.h \
            ./curl_addrinfo.h \
            ./curl_base64.h \
            ./curl_ctype.h \
            ./curl_des.h \
            ./curl_endian.h \
            ./curl_fnmatch.h \
            ./curl_get_line.h \
            ./curl_gethostname.h \
            ./curl_gssapi.h \
            ./curl_hmac.h \
            ./curl_krb5.h \
            ./curl_ldap.h \
            ./curl_md4.h \
            ./curl_md5.h \
            ./curl_memory.h \
            ./curl_memrchr.h \
            ./curl_multibyte.h \
            ./curl_ntlm_core.h \
            ./curl_ntlm_wb.h \
            ./curl_path.h \
            ./curl_printf.h \
            ./curl_range.h \
            ./curl_rtmp.h \
            ./curl_sasl.h \
            ./curl_setup.h \
            ./curl_setup_once.h \
            ./curl_sha256.h \
            ./curl_sspi.h \
            ./curl_threads.h \
            ./curlx.h \
            ./dict.h \
            ./doh.h \
            ./dotdot.h \
            ./dynbuf.h \
            ./easyif.h \
            ./easyoptions.h \
            ./escape.h \
            ./file.h \
            ./fileinfo.h \
            ./fopen.h \
            ./formdata.h \
            ./ftp.h \
            ./ftplistparser.h \
            ./getinfo.h \
            ./gopher.h \
            ./h2h3.h \
            ./hash.h \
            ./headers.h \
            ./hostip.h \
            ./hsts.h \
            ./http2.h \
            ./http_aws_sigv4.h \
            ./http_chunks.h \
            ./http_digest.h \
            ./http.h \
            ./http_negotiate.h \
            ./http_ntlm.h \
            ./http_proxy.h \
            ./if2ip.h \
            ./imap.h \
            ./inet_ntop.h \
            ./inet_pton.h \
            ./llist.h \
            ./memdebug.h \
            ./mime.h \
            ./mqtt.h \
            ./multihandle.h \
            ./multiif.h \
            ./netrc.h \
            ./nonblock.h \
            ./noproxy.h \
            ./parsedate.h \
            ./pingpong.h \
            ./pop3.h \
            ./progress.h \
            ./psl.h \
            ./quic.h \
            ./rand.h \
            ./rename.h \
            ./rtsp.h \
            ./select.h \
            ./sendf.h \
            ./setopt.h \
            ./setup-vms.h \
            ./share.h \
            ./sigpipe.h \
            ./slist.h \
            ./smb.h \
            ./smtp.h \
            ./sockaddr.h \
            ./socketpair.h \
            ./socks.h \
            ./speedcheck.h \
            ./splay.h \
            ./strcase.h \
            ./strdup.h \
            ./strerror.h \
            ./strtok.h \
            ./strtoofft.h \
            ./system_win32.h \
            ./telnet.h \
            ./tftp.h \
            ./timediff.h \
            ./timeval.h \
            ./transfer.h \
            ./urlapi-int.h \
            ./urldata.h \
            ./url.h \
            ./version_win32.h \
            ./warnless.h \
            ./wildcard.h \
            \
            ./vauth/digest.h \
            ./vauth/ntlm.h \
            ./vauth/vauth.h \
            \
            ./vquic/msh3.h \
            ./vquic/ngtcp2.h \
            ./vquic/quiche.h \
            ./vquic/vquic.h \
            \
            ./vssh\ssh.h \
            \
            ./vtls/bearssl.h \
            ./vtls/gskit.h \
            ./vtls/gtls.h \
            ./vtls/hostcheck.h \
            ./vtls/keylog.h \
            ./vtls/mbedtls.h \
            ./vtls/mbedtls_threadlock.h \
            ./vtls/nssg.h \
            ./vtls/openssl.h \
            ./vtls/rustls.h \
            ./vtls/schannel.h \
            ./vtls/sectransp.h \
            ./vtls/vtls.h \
            ./vtls/wolfssl.h \
            ./vtls/x509asn1.h
win32 {
    HEADERS += ./config-win32.h
}
linux* {
    HEADERS += ./config-linux.h
}
macx {
    HEADERS += ./config-mac.h
}

#源文件
SOURCES +=  ./altsvc.c \
            ./amigaos.c \
            ./asyn-ares.c \
            ./asyn-thread.c \
            ./base64.c \
            ./bufref.c \
            ./c-hyper.c \
            ./conncache.c \
            ./connect.c \
            ./content_encoding.c \
            ./cookie.c \
            ./curl_addrinfo.c \
            ./curl_des.c \
            ./curl_endian.c \
            ./curl_fnmatch.c \
            ./curl_gethostname.c \
            ./curl_get_line.c \
            ./curl_gssapi.c \
            ./curl_memrchr.c \
            ./curl_multibyte.c \
            ./curl_ntlm_core.c \
            ./curl_ntlm_wb.c \
            ./curl_path.c \
            ./curl_range.c \
            ./curl_rtmp.c \
            ./curl_sasl.c \
            ./curl_sspi.c \
            ./curl_threads.c \
            ./dict.c \
            ./doh.c \
            ./dynbuf.c \
            ./easy.c \
            ./easygetopt.c \
            ./easyoptions.c \
            ./escape.c \
            ./file.c \
            ./fileinfo.c \
            ./fopen.c \
            ./formdata.c \
            ./ftp.c \
            ./ftplistparser.c \
            ./getenv.c \
            ./getinfo.c \
            ./gopher.c \
            ./h2h3.c \
            ./hash.c \
            ./headers.c \
            ./hmac.c \
            ./hostasyn.c \
            ./hostip4.c \
            ./hostip6.c \
            ./hostip.c \
            ./hostsyn.c \
            ./hsts.c \
            ./http2.c \
            ./http_aws_sigv4.c \
            ./http.c \
            ./http_chunks.c \
            ./http_digest.c \
            ./http_negotiate.c \
            ./http_ntlm.c \
            ./http_proxy.c \
            ./idn_win32.c \
            ./if2ip.c \
            ./imap.c \
            ./inet_ntop.c \
            ./inet_pton.c \
            ./krb5.c \
            ./ldap.c \
            ./llist.c \
            ./md4.c \
            ./md5.c \
            ./memdebug.c \
            ./mime.c \
            ./mprintf.c \
            ./mqtt.c \
            ./multi.c \
            ./netrc.c \
            ./nonblock.c \
            ./noproxy.c \
            ./openldap.c \
            ./parsedate.c \
            ./pingpong.c \
            ./pop3.c \
            ./progress.c \
            ./psl.c \
            ./rand.c \
            ./rename.c \
            ./rtsp.c \
            ./select.c \
            ./sendf.c \
            ./setopt.c \
            ./sha256.c \
            ./share.c \
            ./slist.c \
            ./smb.c \
            ./smtp.c \
            ./socketpair.c \
            ./socks.c \
            ./socks_gssapi.c \
            ./socks_sspi.c \
            ./speedcheck.c \
            ./splay.c \
            ./strcase.c \
            ./strdup.c \
            ./strerror.c \
            ./strtok.c \
            ./strtoofft.c \
            ./system_win32.c \
            ./telnet.c \
            ./tftp.c \
            ./timediff.c \
            ./timeval.c \
            ./transfer.c \
            ./urlapi.c \
            ./url.c \
            ./version.c \
            ./version_win32.c \
            ./warnless.c \
            ./wildcard.c \
            \
            ./vauth/cleartext.c \
            ./vauth/cram.c \
            ./vauth/digest.c \
            ./vauth/digest_sspi.c \
            ./vauth/gsasl.c \
            ./vauth/krb5_gssapi.c \
            ./vauth/krb5_sspi.c \
            ./vauth/ntlm.c \
            ./vauth/ntlm_sspi.c \
            ./vauth/oauth2.c \
            ./vauth/spnego_gssapi.c \
            ./vauth/spnego_sspi.c \
            ./vauth/vauth.c \
            \
            ./vquic/msh3.c \
            ./vquic/ngtcp2.c \
            ./vquic/quiche.c \
            ./vquic/vquic.c \
            \
            ./vssh/libssh2.c \
            ./vssh/libssh.c \
            ./vssh/wolfssh.c \
            \
            ./vtls/bearssl.c \
            ./vtls/gskit.c \
            ./vtls/gtls.c \
            ./vtls/hostcheck.c \
            ./vtls/keylog.c \
            ./vtls/mbedtls.c \
            ./vtls/mbedtls_threadlock.c \
            ./vtls/nss.c \
            ./vtls/openssl.c \
            ./vtls/rustls.c \
            ./vtls/schannel.c \
            ./vtls/schannel_verify.c \
            ./vtls/sectransp.c \
            ./vtls/vtls.c \
            ./vtls/wolfssl.c \
            ./vtls/x509asn1.c

# Default rules for deployment.
#unix {
#    target.path = /usr/lib
#}
#!isEmpty(target.path): INSTALLS += target


五、编译实践

用QtCreator程序,打开004.curl-7.86.0.pro文件。

在这里插入图片描述

在windows下编译,形成:
在这里插入图片描述
在linux下编译,形成:
在这里插入图片描述
在macos下编译,形成:
在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1403944.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

软考系分之计算机网络规划设计、综合布线、RAID和网络存储等

文章目录 1、概要2、网络的三层模型3、综合布线系统4、廉价磁盘冗余阵列(RAID)5、网络存储6、总结 1、概要 本篇重点介绍计算机网络中的网络规划设计、综合布线、RAID和网络存储。 2、网络的三层模型 三层模型分为核心层、汇聚层和接入层,接…

【工具】SageMath|Ubuntu 22 下 SageMath 极速安装 (2024年)

就一个终端就能运行的东西, 网上写教程写那么长, 稍微短点的要么是没链接只有截图、要么是链接给的不到位, 就这,不是耽误生命吗。 废话就到这里。 文章目录 链接步骤 链接 参考: Install SageMath in Ubuntu 22.04We…

一、防御保护---信息安全概述

一、网络安全防御---信息安全概述 1.信息安全现状及挑战1.1 网络空间安全市场在中国,潜力无穷1.2 数字化时代威胁升级1.3 传统安全防护逐步失效1.4 安全风险能见度不足1.5 缺乏自动化防御手段1.6 网络安全监管标准愈发严苛 2.信息安全概述2.1 简介2.2 常见的网络安全…

R语言批量把数值变量和因子变量的互转

#我们以rms包的lung数据集为例 library(rms) data<-lung #这里有两种方法&#xff0c; #第1是知道需要转化的变量在哪几列&#xff1b; #第2知道需要转化的变量名 str(data) #假设我们想转化inst/status/sex/三个变量的类型 #图1先看看变量类型和处于第几列 str(dat…

旅游项目day14

其他模块数据初始化 搜索实现 请求一样&#xff0c;但是参数不一样&#xff0c;根据type划分。 后台需要提供一个搜索接口。 请求分发器&#xff1a; 全部搜索 目的地搜索 精确搜索、无高亮展示 攻略搜索 全文搜索、高亮显示、分页 游记搜搜 用户搜索 丝袜哥

机器学习笔记 - 基于自定义数据集 + 3D CNN进行视频分类

一、简述 这里主要介绍了基于自定义动作识别数据集训练用于视频分类的 3D 卷积神经网络 (CNN) 。3D CNN 使用三维滤波器来执行卷积。内核能够在三个方向上滑动,而在 2D CNN 中它可以在二维上滑动。 这里的模型主要基于D. Tran 等人2017年的论文“动作识别的时空卷积研究”。 …

【GitHub项目推荐--基于 Flutter 的游戏引擎】【转载】

Flame 引擎的目的是为使用 Flutter 开发的游戏会遇到的常见问题提供一套完整的解决方案。 目前 Flame 提供了以下功能&#xff1a; 游戏循环 (game loop) 组件/对象系统 (FCS) 特效与粒子效果 碰撞检测 手势和输入支持 图片、动画、精灵图 (sprite) 以及精灵图组 一些简化…

OCP NVME SSD规范解读-7.TCG安全日志要求

在OCP NVMe SSD规格中&#xff0c;TCG的相关内容涉及以下几个方面&#xff1a; 活动事件记录&#xff1a; NVMe SSD需要支持记录TCG相关的持久事件日志&#xff0c;用于追踪固态硬盘上发生的与TCG安全功能相关的关键操作或状态变化&#xff0c;如启动过程中的安全初始化、密钥…

【Python从入门到进阶】47、Scrapy Shell的了解与应用

接上篇《46、58同城Scrapy项目案例介绍》 上一篇我们学习了58同城的Scrapy项目案例&#xff0c;并结合实际再次了项目结构以及代码逻辑的用法。本篇我们来学习Scrapy的一个终端命令行工具Scrapy Shell&#xff0c;并了解它是如何帮助我们更好的调试爬虫程序的。 一、Scrapy Sh…

时间序列预测 — CNN-LSTM-Attention实现多变量负荷预测(Tensorflow):多变量滚动

专栏链接&#xff1a;https://blog.csdn.net/qq_41921826/category_12495091.html 专栏内容 ​ 所有文章提供源代码、数据集、效果可视化 ​ 文章多次上领域内容榜、每日必看榜单、全站综合热榜 ​ ​ ​ ​ ​ ​ ​ 时间序列预测存在的问题 ​ 现有的大量方法没有真正的预测未…

Qt —— 自定义飞机仪表控件(附源码)

示例效果 部署环境 本人亲测版本Vs2017+Qt5.12.4,其他版本应该也可使用。 源码1 qfi_ADI::qfi_ADI( QWidget *parent ) :QGraphicsView ( parent ),m_scene ( nullptr )

持续集成工具Jenkins的使用之安装篇(一)

Jenkins是一个基于Java开发的开源的一种持续集成工具&#xff0c;主要用于环境部署&#xff0c;监控重复性的工作&#xff0c;旨在提供一个开放易用的软件平台&#xff0c;使软件项目可以进行持续集成。要想使用它&#xff0c;你就必须的先安装&#xff0c;接下来我们就介绍下J…

第一篇【传奇开心果短博文系列】Python的库OpenCV技术点案例示例:cv2常用功能和方法

传奇开心果短博文系列 短博文系列目录Python的库OpenCV技术点案例示例系列 短博文目录一、前言二、常用功能和方法示例三、归纳总结 短博文系列目录 Python的库OpenCV技术点案例示例系列 短博文目录 一、前言 cv2是Python中常用的第三方库&#xff0c;也称为OpenCV库&#…

web3:B站chainlink课程第五课Wsl安装ubuntu虚拟机

坑了我好久。 https://learn.microsoft.com/zh-cn/windows/wsl/install-manual 按照微软给的这个手动安装的方式来&#xff0c;别想在线了&#xff0c;反正来看这个的肯定是直接 wsl --install成功不了的选手。 注意&#xff01; 步骤6别从Microsoft Store 下载&#xff0c;…

Django开发_16_文件上传

一、通过正常网页端文件上传 &#xff08;一&#xff09;前端&#xff1a;html form表单中添加设置 enctype"multipart/form-data" &#xff08;二&#xff09;后端&#xff1a;views.py 获取上传文件对象 upload_filerequest.FILES.get("文件域名称"…

人工智能原理实验4(2)——贝叶斯、决策求解汽车评估数据集

&#x1f9e1;&#x1f9e1;实验内容&#x1f9e1;&#x1f9e1; 汽车数据集 车子具有 buying,maint,doors,persons,lug_boot and safety六种属性&#xff0c;而车子的好坏分为uncc,ucc,good and vgood四种。 &#x1f9e1;&#x1f9e1;贝叶斯求解&#x1f9e1;&#x1f9e1;…

透明拼接屏在汽车领域的应用

随着科技的进步&#xff0c;透明拼接屏作为一种新型的显示技术&#xff0c;在汽车领域的应用越来越广泛。尼伽小编将围绕透明拼接屏在汽车本身、4S店、展会、工厂等方面的应用进行深入探讨&#xff0c;并展望未来的设计方向。 一、透明拼接屏在汽车本身的应用 车窗显示&#x…

JavaScript基础之JavaScript引入方式

JavaScript引入方式 JavaScript 程序不能独立运行&#xff0c;它需要被嵌入 HTML 中&#xff0c;然后浏览器才能执行 JavaScript 代码。通过 script 标签将 JavaScript 代码引入到 HTML 中&#xff0c;一般以下方式: 外部方式内部方式JavaScript元素事件通过JavaScript伪URL引…

Haar小波下采样模块

论文原址&#xff1a;Haar wavelet downsampling: A simple but effective downsampling module for semantic segmentation - ScienceDirect 原文代码&#xff1a;HWD/HWD.py at main apple1986/HWD (github.com) 介绍 深度卷积神经网络 &#xff08;DCNN&#xff09; 通…

性能优化-HVX 指令介绍

「发表于知乎专栏《移动端算法优化》」 本文主要介绍了 HVX 指令相关的知识&#xff0c;包括 HVX 寄存器相关内容&#xff0c;指令的背景依赖&#xff0c;部分常用 intrinsic HVX 指令。具体指令的详细内容及使用还需阅读 HVX 的指令文档&#xff0c;以及细致的实践操作。 &…