精华内容
下载资源
问答
  • openssl篇——5.openssl交叉编译过程实战
    2021-11-19 19:37:25

    说明
      本文章旨在总结备份、方便以后查询,由于是个人总结,如有不对,欢迎指正;另外,内容大部分来自网络、书籍、和各类手册,如若侵权请告知,马上删帖致歉。
      QQ 群 号:513683159 【相互学习】
    内容来源
      openssl官网
      wiki—openssl编译构建OpenSSL库的交叉编译(arm和mips)

      常规构建过程,根据需要可查看前篇添加编译选项

    Linux下构建过程

    Step1.openssl下载

      执行命令:git clone https://github.com/openssl/openssl.git

    Step2.交叉编译器下载

      根据自己主板下载对应交叉编译器。

    Step3.运行配置文件

      执行命令:./Configure no-asm shared --prefix=/usr/local/cross_compile --cross-compile-prefix=/home/xsndz/Desktop/arm-openwrt-linux/bin/arm-openwrt-linux- --openssldir=/usr/local/cross_compile/ssl '-Wl,-rpath,/etc/libs'
      结果:生成Makefile文件
      选项说明:(根据实际情况选择并修改对应参数)
        ①no-asm:不使用汇编程序加速编译过程,因为汇编程序对arm格式不支持。
        ②shared:即生成静态库也生成动态库,no-share不生成动态库,仅有静态库
        ③--prefix=:指定OpenSSL安装的顶部目录
        ④--openssldir=:指定OpenSSL配置文件的目录,以及默认的证书和密钥存储库
        ⑤--cross-compile-prefix=:指定交叉工具链,添加指定的前缀到binutils组件。若为相对路径,需配置对应的环境变量。
        ⑥'-Wl,-rpath,/etc/libs':指定链接器运行时查找库的路径。

    Step4.查看并修改Mafile文件

    1.  PLATFOR=             linux-x86_64修改为arm
    2.  删除-m64编译选项       可通过/m64进行查找
    

    Step5.编译

      执行命令:make -j8
      结果:生成crypto、ssl的静态库和动态库、apps中生成openssl可执行文件等。

    Step6.查看可执行文件是否格式正确

      进入apps文件夹下,执行命令:readelf -h openssl
      可查看Machine: ARM为刚才设置的arm平台

    Step7.将动态库与可执行文件传入主板中

      根据实际情况传入对应主板的文件路径。
      动态库:libssl.so.3libcrypto.so.3
      可执行文件:openssl
      根据实际情况可使用软链接来指定动态库使之兼容。

    Step8.运行可执行文件

      若前面设置了'-Wl,-rpath,/etc/libs'选项,则可执行运行可执行文件。
      若未设置,可能会没找到对应的文件可通过配置环境变量使之找到动态库,如:
        export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/etc/libs

    Step9.openssl的帮助选项

      可查看openssl的命令,可执行:./openssl -help

    Step10.查看版本

    ./openssl version 
    OpenSSL 3.1.0-dev  (Library: OpenSSL 3.1.0-dev ) 
    

      其他自行测试

    其他选择

      1️⃣交叉编译器的其他设置方法:
        (1)Step3.中--cross-compile-prefix=/home/xsndz/Desktop/arm-openwrt-linux/bin/arm-openwrt-linux-可修改为--cross-compile-prefix=arm-openwrt-linux-
        前提是:虚拟机需配置对应的环境变量,如:export PATH=$PATH:/home/xsndz/Desktop/arm-openwrt-linux/bin/,
        环境变量设置有多种方法这边不做介绍,目的就是为编译器能够在执行时找到对应的软件包。
        (2)也可在配置时,直接通过编译参数传入CC、CXX等脚本的环境变量,设置交叉编译器的相关选项。
      其他可查看openssl篇——3.编译构建相关描述了解更多构建信息

    更多相关内容
  • python库和其第三方库,在嵌入式linux操作系统上交叉编译的步骤
  • 针对linphone的交叉编译过程及过程中问题的解决方法进行指导
  • Frp交叉编译过程记录

    千次阅读 2018-11-15 13:57:12
    相比gcc,Go语言的交叉编译超乎想象的简单,直接安装Go语言编译器,默认安装即可. 设置三个环境变量,各个平台配置方式自行百度 GOARCH=arm GOOS=linux CGO_ENABLED=0 其中GOARCH代表处理器,GOOS代表系统平台.CGO_...

    frp下载地址https://github.com/fatedier/frp

    相比gcc,Go语言的交叉编译超乎想象的简单,直接安装Go语言编译器,默认安装即可.

    设置三个环境变量,各个平台配置方式自行百度

    GOARCH=arm

    GOOS=linux

    CGO_ENABLED=0

    其中GOARCH代表处理器,GOOS代表系统平台.CGO_ENABLED是是否启动CGO.交叉编译里面一般不启用即可.

    我这里属于用在arm开发板上,所以设置了处理器为ARM.

    其中需要说明的是,这里的ARM是指的是所有arm处理器的linux系统,也就是即使arm处理器型号不一样,程序也是照样能运行的(这一点简直不要太爽).

    把源码下载解压后进去目录,使用make即可开始编译,编译会提示许多包找不到.

    没关系,我已经把所有的包都取了下来,在文章末尾留下载链接.

    将下载好的依赖包根据提示放在对应目录,window下面可以直接将我上传的依赖包放在Go编译器安装目录下的Src目录中.如下图

    放好后在make/gmake后会报一下错误

    process_begin: CreateProcess(NULL, cp -rf ./assets/static ./bin, ...) failed

    没关系,可以直接执行

    go build -o bin/frps ./cmd/frps

    编译服务端

    go build -o bin/frpc ./cmd/frpc

    编译客户端

    window版本记得加一个.exe.

     

     

    依赖包下载链接https://download.csdn.net/download/zc1239044730/10786456

    展开全文
  • 利用arm-linux-gcc 4.5.1 交叉编译器编译Qt5.4.2的过程文档
  • Qt5.10.1的交叉编译过程

    千次阅读 2019-07-25 20:28:07
    尽管网上有很多Qt交叉编译的教程,但自己操作的时候还是遇到很多问题,主要是环境配置的问题以及对qt中configure的不熟悉。写下来以防自己忘记。 主机:unbuntu 16.04 qt版本:5.10.1 目标版:全志R11 编译工具链...

    尽管网上有很多Qt交叉编译的教程,但自己操作的时候还是遇到很多问题,主要是环境配置的问题以及对qt中configure的不熟悉。写下来以防自己忘记。

    主机:unbuntu 16.04

    qt版本:5.10.1

    目标版:全志R11

    编译工具链:全志SDK包中的交叉编译工具arm-openwrt-linux-gcc。

    要交叉编译的话还是需要配置qmake.conf,到./qt-everywhere-src-5.10.1/qtbase/mkspecs/linux-arm-gnueabi-g++目录下面的qmake.conf进行修改。我的修改如下

    #
    # qmake configuration for building with arm-linux-gnueabi-g++
    #
    
    MAKEFILE_GENERATOR      = UNIX
    CONFIG                 += incremental
    QMAKE_INCREMENTAL_STYLE = sublib
    
    #默认显示方式是linuxfb
    QT_QPA_DEFAULT_PLATFORM = linuxfb
    #设置使用ARM高级特性的标志,根据自己的架构来定
    QMAKE_CFLAGS_RELEASE += -O2 -march=armv7-a -lts
    QMAKE_CXXFLAGS_RELEASE += -O2 -march=armv7-a -lts
    
    include(../common/linux.conf)
    include(../common/gcc-base-unix.conf)
    include(../common/g++-unix.conf)
    
    # modifications to g++.conf
    QMAKE_CC                = arm-openwrt-linux-gcc
    QMAKE_CXX               = arm-openwrt-linux-g++
    QMAKE_LINK              = arm-openwrt-linux-g++
    QMAKE_LINK_SHLIB        = arm-openwrt-linux-g++
    
    # modifications to linux.conf
    QMAKE_AR                = arm-openwrt-linux-ar cqs
    QMAKE_OBJCOPY           = arm-openwrt-linux-objcopy
    QMAKE_NM                = arm-openwrt-linux-nm -P
    QMAKE_STRIP             = arm-openwrt-linux-strip
    load(qt_config)

    主要的就是把编译工具换成交叉编译的工具。

    接下来在./qt-everywhere-src-5.10.1/下配置configure。可以使用一个.sh脚本。贴出我的配置表

    ./configure -v \
    -prefix /usr/local/arm_qt-5.10.1-release \
    -extprefix /home/ljw/install/arm_qt5.10.1_test \
    -xplatform linux-arm-gnueabi-g++ \
    -sysroot /home/sc/lichee/out/banjo-R11_pref1/staging_dir/toolchain \
    -opensource \
    -debug \
    -strip \
    -confirm-license \
    -no-opengl \
    -no-pch \
    -shared \
    -no-xcb \
    -no-eglfs \
    -no-opengl \
    -nomake examples \
    -qt-zlib \
    -linuxfb \
    -skip qt3d \
    -skip qtactiveqt \
    -skip qtandroidextras \
    -skip qtcanvas3d \
    -skip qtcharts 
    -skip qtconnectivity \
    -skip qtdatavis3d \
    -skip qtdeclarative \
    -skip qtdoc \
    -skip qtgamepad \
    -skip qtgraphicaleffects \
    -skip qtlocation \
    -skip qtmacextras \
    -skip qtnetworkauth \
    -skip qtpurchasing \
    -skip qtquickcontrols \
    -skip qtquickcontrols2 \
    -skip qtremoteobjects \
    -skip qtscript \
    -skip qtscxml \
    -skip qtsensors \
    -skip qtserialbus \
    -skip qtspeech \
    -skip qttools \
    -skip qtvirtualkeyboard \
    -skip qtwayland \
    -skip qtwebchannel \
    -skip qtwebengine \
    -skip qtwebglplugin \
    -skip qtwebsockets \
    -skip qtwebview \
    -skip qtwinextras \
    -skip qtxmlpatterns \
    -skip qtx11extras \
    

    主要讲解几个参数,可以通过.configure --help查看所有的参数设置,本人对这些也没有全部了解,只讲解几个

    -prefix 目标板的引用路径。 这个路径有两个作用,一个是指定目标机的Qt库路径,也就是说,当你把Qt库部署到目标机时,需要把Qt库拷贝到这个路径下,Qt程序就可以自动找到库。第二个是,如果你没有指定extprefix, install的时候会把Qt库部署到sysroot+prefix这个路径下。
    -extprefix 设置编译完成之后,make install所安装的地方

    -xplatform 这个参数十分重要,决定了交叉编译时所使用的平台,之前我们在linux-arm-gnueabi-g++/目录下修改了qmake.conf。所以理所当然选用这个。

    -sysroot 这个参数笔者并没有弄清它具体的作用。这里写出笔者自己的理解,当交叉编译时需要用到交叉编译的库,而非主机自带的库,该参数指定默认搜索库的根目录,比如这里笔者将该参数设置为/home/sc/lichee/out/banjo-R11_pref1/staging_dir/toolchain,查找库默认路径时会在/home/sc/lichee/out/banjo-R11_pref1/staging_dir/toolchain/下查找, 而不是/usr/include 和 /usr/lib 中搜索头文件和库。在没有设置该选项时各种报错缺少库,当然可以自己指定路径,但是这样子比较麻烦,设置之后一遍编译通过。

    在./qt-everywhere-src-5.10.1/执行.sh脚本。之后再~/.profile文件中将自己交叉编译器的路径添加到PATH中,source ~/.profile。

    之后就是make,make install。

    讲述下可能遇到的问题:

    warning: libc.so, needed by /usr/tslib/lib/libts.so, not found (try using -rpath or -rpath-link)
    原因:该系列的问题是交叉编译器找不到对应的库。
    解决方法:添加库,或者在.sh中指定库路径

     

    然而在静态编译的时候,会出现

    error adding symbols: DSO missing from command line
    原因:在高本版的ld链接器中(大概是>=2.22) 当fun()函数在一动态库A中,有一个静态库B编译的时候显示链接了A,编译自己的可执行程序时用到了静态库中fun()函数,链接器不会自动的递归查找导致报错
    该问题的解决方法按照网上说的话是添加动态库路径,但是我这边好像没啥效果,有解决的话请大神指教。

    接下里就是交叉编译所用的一些有助于差错的命令。

    查看当前库中有哪些库包含此函数
    grep -REn "函数名" ./*

    查看库中是否此函数
    nm xxx.so | grep 函数名

    查看可执行文件依赖的动态库
    readelf -d "可执行文件"

     

    展开全文
  • linphone arm交叉编译过程记录

    千次阅读 2019-11-02 17:37:17
    Linphone交叉编译过程: 在centos7上交叉编译海思版本linphone (origin/release/4.2)使用过程: 经常需要执行命令: find . -name “*.sh”|sudo xargs chmod +x 配置命令: ./configure --host=arm-linux --...

    Linphone交叉编译过程:
    在centos7上交叉编译海思版本linphone (origin/release/4.2)使用过程:

    经常需要执行命令:
    find . -name “*.sh”|sudo xargs chmod +x

    配置命令:
    ./configure --host=arm-linux --prefix=/home/app_comm/arm-compile/armlib/ CC=/opt/hisi-linux/x86-arm/arm-himix200-linux/bin/arm-himix200-linux-gcc

    编译使用命令:
    ./prepare.py desktop-raspberry -DENABLE_OPENH264=ON -DENABLE_WEBRTC_AEC=OFF -DENABLE_UNIT_TESTS=OFF -DENABLE_MKV=OFF -DENABLE_FFMPEG=ON -DENABLE_CXX_WRAPPER=OFF -DENABLE_NON_FREE_CODECS=ON -DENABLE_VCARD=OFF -DENABLE_BV16=OFF -DENABLE_V4L=OFF

    使用linphone提供的树莓派版本编译的方式,但是树莓派arm版本和海思arm版本不太一致,所以部分cmake配置需要手动修改

    Arm版本信息:
    执行(arm-himix200-linux-gcc –help可以获取一些关于工具相关环境信息)
    arm-himix200-linux-gcc -print-sysroot
    获取: /opt/hisi-linux/x86-arm/arm-himix200-linux/host_bin/…/target

    添加环境变量:
    export RASPBIAN_ROOTFS=/opt/hisi-linux/x86-arm/arm-himix200-linux/host_bin/…/target

    编译过程依赖2个cmake配置文件,需要修改, 分别是:

    1. linphone-desktop\linphone-sdk\cmake-builder\toolchains\toolchain-raspberry.cmake
    2. linphone-desktop\linphone-sdk\cmake-builder\configs\config-desktop-raspberry.cmake

    在2文件中添加
    set(CMAKE_SYSTEM_PROCESSOR “armv7”)

    修改2文件关于ffmpeg的配置:
    lcb_builder_cross_compilation_options(ffmpeg
    “–prefix=${CMAKE_INSTALL_PREFIX}”
    “–enable-cross-compile”

    •   "--cross-prefix=arm-linux-gnueabihf-"
      
    •   "--cross-prefix=arm-himix200-linux-"
        "--arch=arm"
        "--target-os=linux"
      

    )

    修改1文件 注释掉关于环境的判断,添加自己交叉编译gcc路径:
    -if("$ENV{RASPBERRY_VERSION}" STREQUAL “”)
    set(RASPBERRY_VERSION 1)
    -else()

    •   if($ENV{RASPBERRY_VERSION} VERSION_GREATER 3)
      
    •           set(RASPBERRY_VERSION 3)
      
    •   else()
      
    •           set(RASPBERRY_VERSION $ENV{RASPBERRY_VERSION})
      
    •   endif()
      

    -endif()

    -if("$ENV{RASPBIAN_ROOTFS}" STREQUAL “”)

    •   message(FATAL_ERROR "Define the RASPBIAN_ROOTFS environment variable to point to the raspbian rootfs.")
      

    -else()

    •   set(SYSROOT_PATH "$ENV{RASPBIAN_ROOTFS}")
      

    -endif()
    -set(TOOLCHAIN_HOST “arm-linux-gnueabihf”)
    +#if(“KaTeX parse error: Expected 'EOF', got '#' at position 37: … STREQUAL "") +#̲ message(F…ENV{RASPBIAN_ROOTFS}”)
    +#endif()
    +#set(TOOLCHAIN_HOST “arm-linux-gnueabihf”)
    +set(TOOLCHAIN_HOST “arm-himix200-linux”)

    修改1文件, 因为arm版本不一样,需要查询自己编译的arm版本的c,c++flag的参数配上,添加-std=c++11 ,在编译btctoolbox一直报错,分析后发现是c++11标准参数没有添加上,添加后解决
    -if(RASPBERRY_VERSION VERSION_GREATER 2)

    •   set(CMAKE_C_FLAGS "-mcpu=cortex-a53 -mfpu=vfp -mfloat-abi=hard" CACHE STRING "Flags for Raspberry PI 3")
      
    •   set(CMAKE_CXX_FLAGS "${CMAKE_C_FLAGS}" CACHE STRING "Flags for Raspberry PI 3")
      

    -elseif(RASPBERRY_VERSION VERSION_GREATER 1)

    •   set(CMAKE_C_FLAGS "-mcpu=cortex-a7 -mfpu=vfp -mfloat-abi=hard" CACHE STRING "Flags for Raspberry PI 2")
      
    •   set(CMAKE_CXX_FLAGS "${CMAKE_C_FLAGS}" CACHE STRING "Flags for Raspberry PI 2")
      

    -else()

    •   set(CMAKE_C_FLAGS "-mcpu=arm1176jzf-s -mfpu=vfp -mfloat-abi=hard" CACHE STRING "Flags for Raspberry PI 1 B+")
      
    •   set(CMAKE_CXX_FLAGS "${CMAKE_C_FLAGS}" CACHE STRING "Flags for Raspberry PI 1 B+")
      

    -endif()

    -set(CMAKE_FIND_ROOT_PATH “ C M A K E I N S T A L L P R E F I X " " {CMAKE_INSTALL_PREFIX}" " CMAKEINSTALLPREFIX""{CMAKE_SYSROOT}”)

    • set(CMAKE_C_FLAGS “-mcpu=cortex-a7 -mfpu=neon-vfpv4 -mfloat-abi=softfp” CACHE STRING “Flags for Raspberry PI 1 B+”)
      +set(CMAKE_CXX_FLAGS “KaTeX parse error: Double subscript at position 9: {CMAKE_C_̲FLAGS}" CACHE S…{CMAKE_CXX_FLAGS} -std=c++11”)

    • set(CMAKE_FIND_ROOT_PATH “ C M A K E I N S T A L L P R E F I X " " {CMAKE_INSTALL_PREFIX}" " CMAKEINSTALLPREFIX""{CMAKE_SYSROOT}”)

    Ms2编译问题:
    修改 ms2 CmakeLists.txt
    cmake_dependent_option(ENABLE_V4L “Enable Video4Linux support.” YES “ENABLE_VIDEO;LINUX_OR_BSD” NO)

    改为:
    cmake_dependent_option(ENABLE_V4L “Enable Video4Linux support.” NO “ENABLE_VIDEO;LINUX_OR_BSD” NO)

    添加:
    set(ENABLE_X11_DEFAULT_VALUE NO)
    set(ENABLE_GLX_DEFAULT_VALUE NO)

    下载alsa源码编译成arm版本使用:
    地址:https://www.alsa-project.org/main/index.php/Main_Page
    Tar –xvf .

    ./configure --host=arm-linux --prefix=/home/app_comm/arm-compile/armlib/ CC=/opt/hisi-linux/x86-arm/arm-himix200-linux/bin/arm-himix200-linux-gcc

    Make

    配置linphone-desktop/linphone-sdk/mediastreamer2/cmake/FindALSA.cmake; 因为ALSA是自定义的安装路径,导致find_package无法找到;在FindALSA.cmake文件中添加:
    set(ALSA_INCLUDE_DIRS “/home/app_comm/arm-compile/armlib/include”)
    set(ALSA_LIBRARIES “/home/app_comm/arm-compile/armlib/lib/libasound.so”)
    解决这个问题;

    Linphone编译问题

    1. Ms2/cmake/FindFFmpeg.cmake添加
      set(HAVE_FUN_avcodec_get_context_defaults3 1)
      set(HAVE_FUN_avcodec_open2 1)

    库链接出错:
    arm-linux-gnueabi/bin/ld: warning: libbellesip.so.0, needed by …/src/ liblinphone.so.9, not found (try using -rpath or -rpath-link)

    linphone编译时会出现动态库生成可以成功,但是console和daemon文件夹下的demo程序出现链接报错的问题;经过分析应该是arm库在x86环境下无法自动关联自己依赖的库,需要修改 console/CmakeLists.txt 和daemon/CmakeLists.txt文件,帮他链接关联进去,具体修改:
    添加:
    set(LIBS
    ${BELLESIP_LIBRARIES}
    ${MEDIASTREAMER2_LIBRARIES}
    ${ORTP_LIBRARIES}
    ${BCTOOLBOX_CORE_LIBRARIES}
    ${XML2_LIBRARIES}
    ${BELR_LIBRARIES}
    ${LIBXSD_LIBRARIES}
    )
    if(WIN32 AND NOT CMAKE_SYSTEM_NAME STREQUAL “WindowsStore”)
    list(APPEND LIBS “Ws2_32”)
    endif()
    if(LIME_FOUND)
    list(APPEND LIBS ${LIME_LIBRARIES})
    endif()
    if(ENABLE_LIME)
    list(APPEND LIBS ${BZRTP_LIBRARIES})
    endif()
    if(ZLIB_FOUND)
    list(APPEND LIBS ${ZLIB_LIBRARIES})
    endif()
    if(SOCI_FOUND)
    list(APPEND LIBS ${SOCI_LIBRARIES})
    endif()
    if(SQLITE3_FOUND)
    list(APPEND LIBS ${SQLITE3_LIBRARIES})
    endif()
    if(ICONV_FOUND)
    list(APPEND LIBS ${ICONV_LIBRARIES})
    endif()
    if(ENABLE_TUNNEL)
    list(APPEND LIBS ${TUNNEL_LIBRARIES})
    endif()
    if(MSVC AND NOT CMAKE_SYSTEM_NAME STREQUAL “WindowsPhone” AND NOT CMAKE_SYSTEM_NAME STREQUAL “WindowsStore”)
    list(APPEND LIBS ${LIBGCC} ${LIBMINGWEX})
    endif()
    if(WIN32 AND NOT CMAKE_SYSTEM_NAME STREQUAL “WindowsPhone” AND NOT CMAKE_SYSTEM_NAME STREQUAL “WindowsStore”)
    list(APPEND LIBS shlwapi)
    endif()
    if(INTL_FOUND)
    list(APPEND LIBS ${INTL_LIBRARIES})
    endif()
    if(BELCARD_FOUND)
    list(APPEND LIBS ${BELCARD_LIBRARIES})
    endif()

    link_directories("/home/app_comm/linphone/linphone-desktop/OUTPUT/desktop-raspberry/lib")
    list(APPEND LIBS mbedtls mbedx509 mbedcrypto swscale vpx bzrtp srtp2 gsm opus speex speexdsp avcodec avutil swresample bcg729 asound stdc++)

    修改:
    add_executable(linphonec ${LINPHONEC_SOURCE_FILES})
    -target_link_libraries(linphonec ${LINPHONE_LIBS_FOR_TOOLS} ${BCTOOLBOX_CORE_LIBRARIES} ${ORTP_LIBRARIES} ${MEDIASTREAMER2_LIBRARIES} ${XSD_LIBRARIES})
    +target_link_libraries(linphonec ${LINPHONE_LIBS_FOR_TOOLS} L I B S ) s e t t a r g e t p r o p e r t i e s ( l i n p h o n e c P R O P E R T I E S L I N K F L A G S " {LIBS}) set_target_properties(linphonec PROPERTIES LINK_FLAGS " LIBS)settargetproperties(linphonecPROPERTIESLINKFLAGS"{LINPHONE_LDFLAGS}")
    set_target_properties(linphonec PROPERTIES LINKER_LANGUAGE CXX)

    @@ -54,7 +104,10 @@ if(WIN32)
    endif()

    add_executable(linphonecsh ${LINPHONECSH_SOURCE_FILES})
    -target_link_libraries(linphonecsh ${LINPHONE_LIBS_FOR_TOOLS} ${BCTOOLBOX_CORE_LIBRARIES} ${ORTP_LIBRARIES})
    +#target_include_directories(linphonecsh PUBLIC ${LINPHONE_INCLUDE_DIRS})
    +#target_link_libraries(linphonecsh ${LINPHONE_LIBS_FOR_TOOLS} ${BCTOOLBOX_CORE_LIBRARIES} ${ORTP_LIBRARIES} mbedtls mbedx509 mbedcrypto)
    +target_link_libraries(linphonecsh ${LINPHONE_LIBS_FOR_TOOLS})
    +target_link_libraries(linphonecsh L I B S ) s e t t a r g e t p r o p e r t i e s ( l i n p h o n e c s h P R O P E R T I E S L I N K F L A G S " {LIBS}) set_target_properties(linphonecsh PROPERTIES LINK_FLAGS " LIBS)settargetproperties(linphonecshPROPERTIESLINKFLAGS"{LINPHONE_LDFLAGS}")
    set_target_properties(linphonecsh PROPERTIES LINKER_LANGUAGE CXX)

    daemon/CmakeLists.txt按照相同方式修改;

    以上是遇到的比较棘手的一些问题;源代码未做修改,主要是修改编译相关脚本;

    展开全文
  • 交叉编译详解

    千次阅读 2021-02-23 13:31:29
    第 1 章 交叉编译简介 1.1 什么是交叉编译 对于没有做过嵌入式编程的人,可能不太理解交叉编译的...这种方式下,我们使用 x86 平台上的工具,开发针对 x86 平台本身的可执行程序,这个编译过程称为本地编译。 交叉
  • 基于海思3559A 对nginx-1.6.2 openssl-1.0.2的交叉编译过程,nginx-1.6.2的环境部署
  • expect5.45+TCL8.6.9 工具交叉编译过程

    千次阅读 2019-01-06 20:32:02
    一、下载源码: TCL源码:http://www.tcl.tk/software/tcltk/download.html Expect源码:...   二、编译arm版本和x86版本的TCL工具 1.设置环境变量: export tcl_cv_ty...
  • 嵌入式开发—交叉编译OpenCV

    千次阅读 2022-04-04 22:49:44
    编译平台:Ubuntu18.04 x86平台 ...交叉编译工具:gcc-linaro-7.5.0-2019.12-x86_64_aarch64-linux-gnu. 下载地址:https://releases.linaro.org/components/toolchain/binaries/7.5-2019.12/aarch64-linux-gnu/
  • Arm下Grpc交叉编译过程记录

    千次阅读 2019-07-31 10:19:44
    交叉编译gRPC: export GRPC_CROSS_COMPILE=true export GRPC_CROSS_AROPTS="cr --target=elf32-little" make -j4 HAS_PKG_CONFIG=false \ CC=arm-linux-gnueabihf-gcc \ CXX=arm-linux-gnueabihf-g++ \ RANLIB=...
  • Bluez协议栈的交叉编译过程,详细地讲解编译过程与步骤,同时指出在编译过程中遇到的常见错误,难得的指导资料!
  • TSINGSEE青犀视频的Easy系列视频平台,对外提供Windows与Linux版本,如果用户有需求,我们也可以进行编译,提供ARM版。今天我们来分享一下EasyNVR的ARM版移植安装的编译过程
  • 填平了无数大坑后终于实现ubuntu20.04+Qt5.12.12+aarch64-linux-gnu交叉编译平台设置。详细记录了安装的全部过程,补充了全部所需的库,整个编译过程中无任何错误报出,亲测可用。
  • gsoap2.8交叉编译过程笔记

    千次阅读 2018-07-12 12:47:42
    最近在交叉编译gsoap的时候总出现错误,仔细研究试验记录成功编译步骤。1.解压gsoap-2.8,复制两份,命名为gsoap-x86和gsoap-arm2.编译x86下库,进入gsoap-x86目录,执行 ./configure ,make, su -c 'make install'3...
  • 包含了tx1平台 交叉编译Qt5.9.3源码的配置文件,可支持 opengl es 2.0/3.0/4.0。 交叉编译过程参照https://blog.csdn.net/xiaoqingyi_1014/article/details/80373168
  • ubuntu mtd-utils交叉编译过程

    千次阅读 2018-08-09 16:17:21
    MTD-utils的的编译依赖三个库 1,zlib(http://www.zlib.net/zlib-1.2.5.tar.gz) 2,lzo(http://www.oberhumer.com/opensource/lzo/download/lzo-2.03.tar.gz) 3,e2fsprogs...
  • [原创]Qtopia PDA 2.2.2 交叉编译过程2
  • [原创]Qtopia PDA 2.2.2 交叉编译过程
  • hostapd交叉编译

    2018-05-23 10:07:48
    hostapd V2.6,依赖openssl-1.0.1g和libnl-3.2.23。这些依赖库也都在压缩包里。实测可以编译通过。具体编译过程参考这篇博客:https://blog.csdn.net/BHJ1119/article/details/80414989
  • 1、安装交叉编译器 海思:aarch64-himix100-linux PATH导出交叉编译器 2、下载和解压QT源码5.9.6 http://download.qt.io/archive/qt/ 3、配置configure脚本build.sh 内容如下: #!/bin/bash ./configure -v \  ....
  • 折腾2个星期,就搞出这个 ...前提是你系统已经安装好你的交叉编译环境和已经下载了faac1.28 官方地址是 http://www.audiocoding.com/index.html 开发环境:Ubantu12.04.2 交叉编译器:hisiv300-linux-g++,hisiv3
  • 压缩包内部包含7个软件:libdnet snort daq pcap pcre zlib openssl,每个交叉编译的步骤。文档只是记录自己编译的过程,基本编译按照模式来不会出问题,依赖库需要自己移到开发板上。可自行考虑连接静态库
  • linux 环境下 交叉编译wpa_suplicant wifi 配置工具的全过程,会很简单,不会其实也很难,中间依赖两个开源库 openssl 和libnl 。 在这里 ,把关键移植详细的细节记录下来,分享给大家
  • 交叉编译环境介绍

    2021-05-12 07:47:21
    采用交叉编译的主要原因在于,多数嵌入式目标系统不能提供足够的资源供编译过程使用,因而只好将编译工程转移到高性能的主机中进行。linux下的交叉编译环境重要包括以下几个部分:针对目标系统的编译器gcc针对目标...
  • 例如,编译内核时需要使用arm-linux-gcc-4.3.3版本的交叉编译工具链,而使用arm-linux-gcc-3.4.1的交叉编译工具链,则会导致编译失败。  gcc和arm-linux-gcc的区别就是gcc是linux下的C语言编译器,编译出来的...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 68,897
精华内容 27,558
关键字:

交叉编译的过程