我是靠谱客的博主 坚定毛衣,最近开发中收集的这篇文章主要介绍误删/usr/bin/ld怎么解决?误删/usr/bin/ld怎么解决?,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

误删/usr/bin/ld怎么解决?

1.问题

​ 在ubuntu22.04上不小心误删/usr/bin/ld链接,它是gcc和g++的默认链接器,在binutils包中使用。有网友说重新安装binutils可以解决这个问题,于是操作如下:

sudo apt-get install binutils

但是遇到下面的错误:

/usr/bin/ld: 1: Syntax error: newline unexpected
collect2: error: ld returned 2 exit status

2.解决思路

2.1 安装binutils基础库

​ 因为链接器的删除,在没有备份的情况下无法复制同样系统的/usr/bin/ld文件(用sudo 复制也无法链接到).重装操作系统是可以的,在安装软件不多的情况下适用.我装的软件比较多,于是想尝试一下其他方法.

//删除与ld链接器相关的的所有库,系统自带的库,如python2.7等都会被删除
sudo apt-get autoremove binutils
//建立基础连接
sudo apt-get install binutils

此时在终端操作:

ld
//输出 ld: no input files

说明ld链接正常,但是系统原生的

2.2 安装系统自带gcc等库

此时直接编译C或C++工程会提示,找不到/usr/bin/cc

重新安装吧

//确定依赖关系gcc -> g++ -> gdb,gdb依赖g++,g++依赖gcc
sudo apt-get install gdb
sudo apt install gcc-11 g++-11
sudo apt install gcc g++

hello.c

#include <stdio.h>
int main()
{
  printf ("Hello World!n");
  return 0;
}

查看编译是否能通过

gcc hello.c -o hello
./hello

2.3 与ROS2建立连接

此时如果直接编译ros2:

colcon build

会出现如下错误

By not providing "Findrosidl_default_generators.cmake" in CMAKE_MODULE_PATH
  this project has asked CMake to find a package configuration file provided
  by "rosidl_default_generators", but CMake did not find one.

  Could not find a package configuration file provided by
  "rosidl_default_generators" with any of the following names:

    rosidl_default_generatorsConfig.cmake
    rosidl_default_generators-config.cmake

老办法,重新安装ros2吧

安装ROS2,一键安装ros2(humble):

get http://fishros.com/install -O fishros && . fishros
//大约需要40分钟

3.Summary

文件: 对根目录下的文件,尤其是usr/bin/,/bin/等操作要谨慎,要注意备份.

command: 使用sudo rm…和sudo mv…要谨慎又谨慎

4.参考文献

1.g++/gcc编译链接遇到Syntax error: newline unexpected 怎么解决?:

https://ask.csdn.net/questions/7562519

2.Ubuntu开发中,gcc默认ld链接器报错的解决办法:

https://blog.csdn.net/benben_ho/article/details/121267650

3.colcon build error on Ros2 Foxy Unity-Robotics-Hub example:

https://stackoverflow.com/questions/71189491/colcon-build-error-on-ros2-foxy-unity-robotics-hub-example

4.Ubuntu18.04 安装后应该做的事

https://blog.csdn.net/hymanjack/article/details/80285400#t12

5.成功解决 ERROR: An error occurred while performing the step: “Building kernel modules“. See /var/log/nv:

https://blog.csdn.net/qq_41185868/article/details/97529463

6.Linux安装gcc的四种方法

https://cloud.tencent.com/developer/article/2091254

最后

以上就是坚定毛衣为你收集整理的误删/usr/bin/ld怎么解决?误删/usr/bin/ld怎么解决?的全部内容,希望文章能够帮你解决误删/usr/bin/ld怎么解决?误删/usr/bin/ld怎么解决?所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(74)

评论列表共有 0 条评论

立即
投稿
返回
顶部