基于GNU Autotools的项目交叉编译技巧

la 文件

xxx.la文件对交叉编译是有害的,它们会引用host主机的库,导致交叉编译失败,建议删除

pkg-config

使用 pkg-config 容易受到host的环境污染

禁止pkg-config的使用:

./configure PKG_CONFIG=/bin/false

pkg-config 替代品

有些项目会提供XXX_CFLAGS和XXX_LIBS:

./configure \
    BAR_CFLAGS="-I/path/to/pkg-bar/usr/include"\
    BAR_LIBS="-L/path/to/pkg-bar/usr/lib -lbar\
             -Wl,-rpath-link,/path/to/pkg-bar/usr/lib"\
    PKG_CONFIG=/bin/false

如果项目没有提供,则:

./configure \
    CFLAGS="-I/path/to/pkg-bar/usr/include"\
    LDFLAGS="-L/path/to/pkg-bar/usr/lib -lbar\
             -Wl,-rpath-link,/path/to/pkg-bar/usr/lib"\
    PKG_CONFIG=/bin/false

Last updated: 2024-08-29