找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
广告投放联系QQ68610888
查看: 1992|回复: 0

openwrt barrier_breaker gcc final编译配置选项好像有问题

[复制链接]
最小编译配置选项:
        GCC_VARIANT:=minimal
       
        include ../common.mk
       
        GCC_CONFIGURE += \
                --with-newlib \
                --without-headers \
                --enable-languages=c \
                --disable-libssp \
                --disable-shared \
                --disable-threads

初始编译配置选项:
        GCC_VARIANT:=initial

        include ../common.mk
       
        GCC_CONFIGURE += \
                --with-newlib \
                --with-sysroot=$(TOOLCHAIN_DIR) \
                --enable-languages=c \
                --disable-shared \
                --disable-threads \

最终编译配置选项:
        GCC_VARIANT:=final
       
        include ../common.mk
       
        GCC_CONFIGURE += \
                --with-headers=$(TOOLCHAIN_DIR)/include \
                --enable-languages=$(TARGET_LANGUAGES) \
                --enable-shared \
                --enable-threads \
                --with-slibdir=$(TOOLCHAIN_DIR)/lib


疑点在于--with-sysroot=$(TOOLCHAIN_DIR)选项。
最小编译用于检出linux头文件,无需搜索头文件和库,所以无需关心sysroot;
初始编译用于编译c库,需要搜索安装的linux头文件(安装在$(TOOLCHAIN_DIR)/include目录下),所以设置sysroot;
最终编译用于编译各种软件包,其配置选项将影响编译其他软件包时的搜索路径,而此处未设置,本人认为有问题。
当在linux平台上编译openwrt时,因为同为linux系统,库和系统函数定义一样(当然可能存在版本差别),在编译时搜索host的头文件和库可能不会出问题(实际是问题被掩盖了),但是当在freebsd平台编译时,因为个别函数定义头文件不同(如有些参数linux定义在alloca.h中,而freebsd定义在stdlib.h中),就会出现找不到头文件(如alloca.h)的错误。

以上分析尚未实际验证。稍后进行。
恳请大家指教。
我的恩山、我的无线 The best wifi forum is right here.
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

有疑问请添加管理员QQ86788181|手机版|小黑屋|Archiver|恩山无线论坛(常州市恩山计算机开发有限公司版权所有) ( 苏ICP备05084872号 )

GMT+8, 2024-4-28 02:24

Powered by Discuz! X3.5

© 2001-2024 Discuz! Team.

| 江苏省互联网有害信息举报中心 举报信箱:js12377 | @jischina.com.cn 举报电话:025-88802724 本站不良内容举报信箱:68610888@qq.com 举报电话:0519-86695797

快速回复 返回顶部 返回列表