安装cross toolchain及NO_PUBKEY错误解决办法

在ubuntu上安装交叉编译工具,以前安装交叉编译工具是件很麻烦的事情(那些依赖关系),但是现在emdebian已经打包好了.

1>加入源:

根据http://www.emdebian.org/crosstools.html的提示
需要在/etc/apt/source.list中加入emdebian的源,如下:
#Stable (Squeeze)
#There are gcc-4.4 and gcc-4.3 cross toolchains available from emdebian.org
deb http://www.emdebian.org/debian/ squeeze main

2>reload:

改变了source.list就需要更新一下:apt-get update

3>解决update出错问题:

错误log:
the public key is not available: NO_PUBKEY B5B7720097BB3B58
解决办法:
sudo apt-get install emdebian-archive-keyring
4>安装:
sudo apt-get update
sudo apt-get install gcc-4.<tab>
                           gcc-4.4 gcc-4.4-base-mips-cross gcc-4.4-ia64-linux-gnu-base gcc-4.4-multilib-mipsel-linux-gnu
                           gcc-4.4-s390-linux-gnu-base gcc-4.4-arm-linux-gnueabi gcc-4.4-base-mipsel-cross gcc-4.4-locales
                           gcc-4.4-multilib-mips-linux-gnu gcc-4.4-source gcc-4.4-arm-linux-gnueabi-base
                           gcc-4.4-base-powerpc-cross gcc-4.4-mipsel-linux-gnu gcc-4.4-multilib-s390-linux-gnu
                           gcc-4.4-sparc-linux-gnu gcc-4.4-base gcc-4.4-base-s390-cross gcc-4.4-mipsel-linux-gnu-base
                           gcc-4.4-multilib-sparc-linux-gnu gcc-4.4-sparc-linux-gnu-base gcc-4.4-base-armel-cross
                           gcc-4.4-base-sparc-cross gcc-4.4-mips-linux-gnu gcc-4.4-powerpc-linux-gnu gcc-4.4-base-hppa-cross
                           gcc-4.4-doc gcc-4.4-mips-linux-gnu-base gcc-4.4-powerpc-linux-gnu-base gcc-4.4-base-ia64-cross
                           gcc-4.4-ia64-linux-gnu gcc-4.4-multilib gcc-4.4-s390-linux-gnu





### 关于翼辉 TOOLCHAIN_CXX_EXCEPT_CFLAGS 的定义与用法 #### 定义背景 `TOOLCHAIN_CXX_EXCEPT_CFLAGS` 是一种用于配置 C++ 编译器特定标志的变量名称,在构建系统中通常用来指定针对 C++ 文件编译时需要排除或额外处理的编译选项。这类变量的设计目的是为了灵活调整不同工具链的行为,满足项目需求。 在翼辉操作系统或其他嵌入式开发环境中,该变量可能被定义为一组特殊的编译参数集合,这些参数会在 C++ 编译过程中生效或者被忽略。其具体作用可以通过以下方式实现: - **排除某些默认标志**:当工具链自动应用了一些不适用于当前项目的标志时,可以利用 `TOOLCHAIN_CXX_EXCEPT_CFLAGS` 来移除它们。 - **补充特殊行为**:如果目标平台需要禁用异常处理(exception handling)、RTTI 或其他特性,则可以在该变量中设置对应的标志[^1]。 #### 使用场景分析 假设在一个基于 GNU 工具链的环境下工作,并希望关闭 C++ 中的标准库链接以及异常机制,则可如下定义此变量: ```makefile TOOLCHAIN_CXX_EXCEPT_CFLAGS := -fno-exceptions -fno-rtti ``` 上述命令表示向所有涉及 `.cpp` 文件的编译操作加入 `-fno-exceptions` 和 `-fno-rtti` 参数,从而分别禁用了 C++ 异常支持和运行时类型识别功能[^2]。 另外需要注意的是,有时即使指定了类似的选项仍可能出现警告信息,比如 Clang 提供的相关提示提到未使用的 GCC 工具链路径参数的情况[^3]。这表明实际执行过程中可能存在兼容性差异,因此建议仔细验证最终生成的目标二进制文件是否符合预期。 #### 示例代码展示 下面给出一段完整的 Makefile 片段作为参考,演示如何结合 `toolchain()` 配置项来运用此类自定义宏: ```makefile toolchain("gcc") { tool("cxx") { command = "g++ $(TOOLCHAIN_CXX_FLAGS) $(TOOLCHAIN_CXX_EXCEPT_CFLAGS) -c {{source}} -o {{output}}" description = "CXX {{output}}" outputs = ["{{build_dir}}/{{target_output_name}}.o"] } } ``` 在此例子中可以看到,通过拼接标准 flags (`$(TOOLCHAIN_CXX_FLAGS)`) 及例外 flags (`$(TOOLCHAIN_CXX_EXCEPT_CFLAGS)`),实现了更加精细控制每一步骤中的编译过程。 --- ###
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值