zoukankan      html  css  js  c++  java
  • linux automake 交叉编译

    .
    ├── aclocal.m4
    ├── autoscan.log
    ├── config.log
    ├── config.status
    ├── configure
    ├── configure.in
    ├── Makefile
    ├── Makefile.am
    ├── Makefile.in
    └── src
         ├── face
         │   ├── face.cpp
         │   ├── face.h
         │   ├── face.o
         │   ├── libface.a
         │   ├── Makefile
         │   ├── Makefile.am
         │   └── Makefile.in
         ├── main.cpp
         ├── main.o
         ├── Makefile
         ├── Makefile.am
         └── Makefile.in
    

      configure.in

    AC_PREREQ([2.65])
    AC_INIT(main,1.0)
    AC_CONFIG_SRCDIR([src/main.cpp])
    #AC_CONFIG_HEADERS([config.h])
    AM_INIT_AUTOMAKE
    # Checks for programs.
    AC_PROG_CXX
    AC_PROG_CC
    AC_PROG_RANLIB       #使用了静态库编译,需要此宏定义
    # Checks for libraries.
    
    # Checks for header files.
    
    # Checks for typedefs, structures, and compiler characteristics.
    
    # Checks for library functions.
    
    AC_OUTPUT(Makefile src/Makefile src/face/Makefile) 
    

      Makefile.am

    AUTOMAKE_OPTIONS=foreign
    SUBDIRS=src   #本目录的直接下级目录src需要编译
    #EXTRA_DIST=doc/userguide #doc/userguide不需要编译,但要发布该文件。如果有多个文件,则用空格分开。
    

      src/Makefile.am

    AUTOMAKE_OPTIONS=foreign
    SUBDIRS=face #本目录的直接下级目录face需要编译
    bin_PROGRAMS=main #本目录的文件编译成可执行文件hello。如有多个,用空格分开。然后在下面分别写它们的SOURCE和LDADD。
    main_SOURCES=main.cpp #编译hello需要的源文件列表,如有多个,用空格分开。
    main_LDADD=face/libface.a #编译hello需要的库文件列表。如有多个,用空格分开。
    

      src/face/Makefile.am

    AUTOMAKE_OPTIONS=foreign
    noinst_LIBRARIES=libface.a   #本目录下的代码编译成libhello.a库。不需要发布。如果需要发布,则写成bin_LIBRARIES。注意,库的名称格式必需为 libxxx.a。因为编译静态库,configure.in需要定义AC_PROG_RANLIB宏。
    libface_a_SOURCES=face.h face.cpp #编译libhello.a需要的源文件。注意将库名称中的'.'号改成'_'号。 
    

      

    运行 

    automake --add-missing。
        
    ./configure

    make


    交叉编译

    ./configure --host=arm-linux CPPFLAGS="-I/usr/local/include" LDFLAGS="-lrt -lpthread -lm -ldl  /root/code/auto/arm/opencv/lib/libopencv_objdetect.so"

    make

    #CPPFLAGS include的设置

    #LDFLAGS lib的设置

  • 相关阅读:
    CISCO实验记录九:NAT地址转换
    CISCO实验记录八:ACL访问控制
    【零基础】风格迁移之deep-painterly-harmonization的安装和使用
    CISCO实验记录七:OSPF
    【零基础】看懂“深度学习”的优势
    数学专业各学科视频网址
    Flash网站Loading制作
    30张图 讲述真实的人性
    【UXPA工作坊小记】郎学明:做更“有用”的用户研究
    科学训练传播训练营///第一期:科学问题的复杂性///参后感觉
  • 原文地址:https://www.cnblogs.com/ahuo/p/4105475.html
Copyright © 2011-2022 走看看