• Ubuntu16.04 ARM平台移植libcurl curl-7.63.0


    libcurl是免费的轻量级的客户端网络库,支持DICT, FILE, FTP, FTPS, Gopher, HTTP, HTTPS, IMAP, IMAPS, LDAP, LDAPS,POP3, POP3S, RTMP, RTSP, SCP, SFTP, SMTP, SMTPS, Telnet, TFTP.支持SSL, HTTPPOST,HTTPPUT, FTP上传, HTTP form上传,代理,cookies, 用户名与密码认证。

    系统环境:Ubuntu 16.04
    源码:curl-7.63.0.tar.gz , 下载地址 https://curl.haxx.se/libcurl/
    交叉编译环境:arm-none-linux-gnueabihf
     
    libcurl原代码内包含了CMakeLists.txt和configure,两种方式都可以进行交叉编译

    1. toolchain.cmake

    #toolchain cmake file 
    #cmake -DCMAKE_TOOLCHAIN_FILE=~/toolchain.cmake ../
    SET(CMAKE_SYSTEM_NAME Linux)
    SET(TOOLCHAIN_DIR "complier_dir")
    SET(3RDPART_LIBS_DIR "thirdpart_dir")
    
    #specify the cross compiler
    SET(CMAKE_C_COMPILER ${TOOLCHAIN_DIR}/bin/arm-linux-gnueabihf-gcc CACHE FILEPATH "Archiver")
    SET(CMAKE_CXX_COMPILER ${TOOLCHAIN_DIR}/bin/arm-linux-gnueabihf-g++ CACHE FILEPATH "Archiver")
    
    #SET(CMAKE_GFORTRAN  ${TOOLCHAIN_DIR}/bin/arm-linux-gnueabihf-gfortran)
    SET(CMAKE_AR ${TOOLCHAIN_DIR}/bin/arm-linux-gnueabihf-ar CACHE FILEPATH "Archiver")
    SET(CMAKE_AS ${TOOLCHAIN_DIR}/bin/arm-linux-gnueabihf-as CACHE FILEPATH "Archiver")
    SET(CMAKE_LD  ${TOOLCHAIN_DIR}/bin/arm-linux-gnueabihf-ld CACHE FILEPATH "Archiver")
    SET(CMAKE_NM ${TOOLCHAIN_DIR}/bin/arm-linux-gnueabihf-nm CACHE FILEPATH "Archiver")
    SET(CMAKE_STRIP  ${TOOLCHAIN_DIR}/bin/arm-linux-gnueabihf-strip CACHE FILEPATH "Archiver")
    
    # where is the target environment 
    SET(CMAKE_FIND_ROOT_PATH  ${TOOLCHAIN_DIR} ${3RDPART_LIBS_DIR})
    
    # search for programs in the build host directories
    SET(CMAKE_FIND_ROOT_PATH_MODE_PROGRAM NEVER)
    
    # for libraries and headers in the target directories
    SET(CMAKE_FIND_ROOT_PATH_MODE_LIBRARY ONLY)
    SET(CMAKE_FIND_ROOT_PATH_MODE_INCLUDE ONLY)
    

    交叉编译指令

    cmake -DCMAKE_TOOLCHAIN_FILE=toochain._dir ../

    2. configure

    ./configure --prefix=install_dir --host=arm-linux/arm-linux-gnueabihf/others CC=arm-linux-gnueabihf-gcc CXX=arm-linux-gnueabihf-g++
    

      

  • 相关阅读:
    现代JVM内存管理方法的发展历程,GC的实现及相关设计概述(转)
    jvm对大对象分配内存的特殊处理(转)
    用java字节码解释i++和++i(转)
    Git 常用命令手记 及 Github协同流程(转)
    经常使用git命令集
    Android手机分辨率基础知识(DPI,DIP计算)
    软件測试自学指南---从入门到精通
    惊!从一场离奇的命案说起
    java设计模式演示样例
    浅谈UML的概念和模型之UML九种图
  • 原文地址:https://www.cnblogs.com/flyinggod/p/10148228.html
Copyright © 2020-2023  润新知