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的设置

  • 相关阅读:
    《哈佛商业评论》2018正刊12期与增刊25期的点评
    《财经》2018年共30+1期的点评与摘抄
    4星|《人人都在说谎》:社会科学方面有趣的数据分析方法与结论
    3星|侯世达《我是个怪圈》:关于人类意识的各种哲学思辨
    虚拟机 SUSE Linux Enterprise Server 12 SP2 64
    虚拟机 CentOS7 64
    虚拟机 ubuntu 16.04
    虚拟机 windows xp sp3 原版
    C#实现控制Windows系统关机、重启和注销的方法
    日期时间设置 "2018-05-04T16:36:23.6341371+08:00" 格式
  • 原文地址:https://www.cnblogs.com/ahuo/p/4105475.html
Copyright © 2011-2022 走看看