首页 > 代码库 > linux automake 交叉编译
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_CXXAC_PROG_CCAC_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=foreignSUBDIRS=src #本目录的直接下级目录src需要编译#EXTRA_DIST=doc/userguide #doc/userguide不需要编译,但要发布该文件。如果有多个文件,则用空格分开。
src/Makefile.am
AUTOMAKE_OPTIONS=foreignSUBDIRS=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=foreignnoinst_LIBRARIES=libface.a #本目录下的代码编译成libhello.a库。不需要发布。如果需要发布,则写成bin_LIBRARIES。注意,库的名称格式必需为 libxxx.a。因为编译静态库,configure.in需要定义AC_PROG_RANLIB宏。libface_a_SOURCES=face.h face.cpp #编译libhello.a需要的源文件。注意将库名称中的‘.‘号改成‘_‘号。
交叉编译
./configure --host=arm-linux
make
linux automake 交叉编译
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。