免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 1746 | 回复: 2
打印 上一主题 下一主题

[开发环境] 我的 ld 为什么不能工作? [复制链接]

论坛徽章:
1
2015年辞旧岁徽章
日期:2015-03-03 16:54:15
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2012-03-31 16:50 |只看该作者 |倒序浏览
binutils 2.16

编译已经生成了 ld 链接器。

编译 gcc 以后。

使用这个 gcc 编译程序时,报出如下错误:ld: unrecognized option '-Qn'

使用系统原来的 ld 则没有任何问题。

不过系统原来的 ld 太老,不支持 -R 的参数,编译某些程序时会出错。

论坛徽章:
1
2015年辞旧岁徽章
日期:2015-03-03 16:54:15
2 [报告]
发表于 2012-03-31 16:58 |只看该作者
我先编译的 binutils ,编译时指定了 BUILD_PATH 参数到自己的新开发环境目录。

./configure --prefix=/newdir --enable-static --with-gnu-as --with-gnu-ld

make configure-host           强制对所有的子目录进行编译环境配置。
make LDFLAGS=“-all-static” BUILD_PATH=/newdir/lib

然后执行了

make -C -ld clean

然后再次执行 make


// 这样做是因为由于 ld 需要其他的文件的库,第一次编译时不会编译出来,所以需要二次编译。
make install
执行完以后 ld 有了。

但是接下来编译 gcc 的时候,执行了 gmake bootstrap 的时候,就报上面的错误,但是如果将 i686-pc-fls-xxx/bin 目录下的 ld 换名,使之使用系统原来自带的 ld ,则编译可以通过。

问题是这样做以后,新编译出来的gcc 如果使用这个新的 ld , 就同样会报上面的错误,但如果是使用原来的就不会。

论坛徽章:
1
2015年辞旧岁徽章
日期:2015-03-03 16:54:15
3 [报告]
发表于 2012-04-01 00:09 |只看该作者
那个问题解决了,又出了新的问题了。

gcc -o a a.c

就出现如下信息。

ld: invalid BFD target `elf'

感觉还是编译 binutils 的问题,能不能在编译的时候屏蔽掉 ld 的 elf 和 coff 选项啊。
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP