You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

在Solaris 11.3(Sparc)下让gcc调用GNU as/ld的方法求助

在Solaris 11.3上让GCC调用指定的GNU as和ld(无需重新编译GCC)

针对你构建libffi-3.4.5时遇到的GCC不识别AS/LD环境变量的问题,这里有几个可靠的解决方法:

1. 直接通过GCC命令行参数指定工具路径

这是最直接且通用的方式,适用于所有GCC版本:

  • 使用-B选项统一指定工具目录:该选项会让GCC优先从指定目录查找as、ld等辅助工具,无需单独指定每个工具:
    gcc -B/usr/gnu/bin/ your_source_files.c -o output_binary
    
  • 单独指定汇编器和链接器:如果需要更精细的控制,可以分别指定:
    • 指定GNU汇编器:添加-Wa,--as-path=/usr/gnu/bin/as参数
    • 指定GNU链接器:添加-fuse-ld=/usr/gnu/bin/ld参数
      示例命令:
    gcc -Wa,--as-path=/usr/gnu/bin/as -fuse-ld=/usr/gnu/bin/ld your_source_files.c -o output_binary
    

2. 针对libffi构建过程配置参数

因为你是在构建libffi,可通过configure脚本传递带参数的GCC命令:

  • 直接在configure命令中指定CC变量:
    CC="gcc -B/usr/gnu/bin/" ./configure --prefix=/your/preferred/install/path
    
  • 或者先设置CC环境变量再运行configure:
    export CC="gcc -Wa,--as-path=/usr/gnu/bin/as -fuse-ld=/usr/gnu/bin/ld"
    ./configure --prefix=/your/preferred/install/path
    
    配置完成后直接执行make和make install即可,整个构建过程会自动使用指定的GNU工具。

3. 关于AS/LD环境变量被忽略的原因

GCC本身默认不会读取AS和LD环境变量来替换内置的工具路径,这些变量通常被make等构建系统使用,而非GCC直接识别,所以直接设置这两个环境变量无法生效。

内容的提问来源于stack exchange,提问作者retired

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.21 21:36:02