Autoconf类项目移植
Andrew Huang <bluedrum@163.com>
这一类开源项目是没有Makefile,一般只带configure.由configure检测编译环境来生成Makefile.
如果x86,一般用./configure 即可生成X86 Makefile.
如果ARM,需要加入 --host=arm-linux,让configure生成针对ARM-Linux的Makefile
需要configure支持--host参数,可以用./configure --help 来检查是否支持
关于安装
Autoconf的Makfile 的安装都执行make install。
Make install.默认安装/usr/local下
头文件是安装/usr/local/include
库是安装/usr/local/lib
执行程序安装/usr/local/bin
文档安装在/usr/local/man
ARM-Linux的项目要指向一个自己目录,防止冲掉X86同名文件。
用--prefix 这个参数来指定的。
ARM-Linux移植
./configure --host=arm-linux --prefix=$PWD/../../ouput/arm-linux
多个项目的组织
建立一个基准项目 rootfs/linux
所有第三方的源码放解压在lib
调用库的程序放在app
最终输出目录是 output/arm-linux
Libraries have been installed in:
/home/hxy/ut6410/rootfs/test/linux/lib/SDL_ttf-2.0.9/../../output/arm-linux/lib
If you ever happen to want to link against installed libraries
in a given directory, LIBDIR, you must either use libtool, and
specify the full pathname of the library, or use the `-LLIBDIR'
flag during linking and do at least one of the following:
- add LIBDIR to the `LD_LIBRARY_PATH' environment variable
during execution
- add LIBDIR to the `LD_RUN_PATH' environment variable
during linking
- use the `-Wl,--rpath -Wl,LIBDIR' linker flag
- have your system administrator add LIBDIR to `/etc/ld.so.conf'
See any operating system documentation about shared libraries for
more information, such as the ld(1) and ld.so(8) manual pages.