ppplinday 2017-06-13 02:14 采纳率: 0%
浏览 3099
已结题

Linux下错误操作了usr/bin/ld 现在连个g++都不能编译了 怎么办

我在终端用cp了一个.so进入usr/bin/ld 结果现在连hello world都不能编译。这个怎么办?

  • 写回答

2条回答 默认 最新

  • chenjiexixi 2017-06-13 02:14
    关注

    最近在linux上误操作,执行了如下命令:
    sudo cp /home/bizhi/Desktop/libusb-compat-0.1.5/libusb/.libs/libusb.so /usr/bin/ld
    然后执行了 ll /usr/bin/ld*
    lrwxrwxrwx 1 root root 6 2013-05-24 16:56 ld -> ld.bfd*
    -rwxr-xr-x 1 root root 49410 2013-06-09 19:34 ld.bfd*
    -rwxr-xr-x 1 root root 5279 2011-10-05 06:06 ldd*
    -rwxr-xr-x 1 root root 1796268 2011-09-22 21:07 ld.gold*
    好像并没有被覆盖掉。
    但是我接着用 gcc 或者 g++编译时,就会出现了如下错误
    ubuntu:~/test$ gcc a.c -o a
    collect2: ld terminated with signal 11 [Segmentation fault]
    a.c的源码如下

    #include
    #include
    int main(int argc,char *argv[])
    {
    printf("test\n");
    return 0;
    }

    因为之前gcc和g++是可以用的。不知道是不是由于我的误操作导致的,还是因为其他原因,请帮忙查看一下。谢谢!
    ------解决方案--------------------
    sudo cp /home/bizhi/Desktop/libusb-compat-0.1.5/libusb/.libs/libusb.so /usr/bin/ld
    你实际上是把libusb.so的内容给了ld -> ld.bfd*即,给了ld.bdf*,那么就是改变了ld.bfd的内容,所以编译通不过。cp就是拷贝,如果你要用libsub.so的链接的话,就改为用mv

    评论

报告相同问题?

悬赏问题

  • ¥15 安装svn网络有问题怎么办
  • ¥15 Python爬取指定微博话题下的内容,保存为txt
  • ¥15 vue2登录调用后端接口如何实现
  • ¥65 永磁型步进电机PID算法
  • ¥15 sqlite 附加(attach database)加密数据库时,返回26是什么原因呢?
  • ¥88 找成都本地经验丰富懂小程序开发的技术大咖
  • ¥15 如何处理复杂数据表格的除法运算
  • ¥15 如何用stc8h1k08的片子做485数据透传的功能?(关键词-串口)
  • ¥15 有兄弟姐妹会用word插图功能制作类似citespace的图片吗?
  • ¥15 latex怎么处理论文引理引用参考文献