Связывание исполняемого файла CXX — / usr / bin / ld: не удается найти

Привет C ++ и / или ROS Эксперты

Я только что сделал новую установку Ubuntu 12.04 и ROS.

Мои старые инсталляции тоже были на убунру 12.04, и он работал отлично.

Но теперь, когда я пытаюсь сделать или написать свой проект, я получаю следующую ошибку:

  Linking CXX executable ../bin/robot_task_execution
/usr/bin/ld: cannot find -lrw_sandbox
/usr/bin/ld: cannot find -lrw_control
/usr/bin/ld: cannot find -lrw_algorithms
/usr/bin/ld: cannot find -lrw_pathplanners
/usr/bin/ld: cannot find -lrw_pathoptimization
/usr/bin/ld: cannot find -lrw_task
/usr/bin/ld: cannot find -lrw_simulation
/usr/bin/ld: cannot find -lrw_opengl
/usr/bin/ld: cannot find -lrw_lua
/usr/bin/ld: cannot find -llua51
/usr/bin/ld: cannot find -lrw_proximitystrategies
/usr/bin/ld: cannot find -lyaobi
/usr/bin/ld: cannot find -lpqp
/usr/bin/ld: cannot find -lrw
/usr/bin/ld: cannot find -lrw_qhull
collect2: ld returned 1 exit status

У вас есть какое-то представление о том, что это значит, или как это исправить?

Я установил ROS, как это, может быть, мне нужно что-то еще ?:

sudo sh -c 'echo "deb http://packages.ros.org/ros/ubuntu precise main" > /etc/apt/sources.list.d/ros-latest.list'
wget http://packages.ros.org/ros.key -O - | sudo apt-key add -
sudo apt-get update
sudo apt-get install ros-fuerte-desktop-full
echo "source /opt/ros/fuerte/setup.bash" >> ~/.bashrc
. ~/.bashrc
sudo apt-get install python-rosinstall python-rosdep

С наилучшими пожеланиями, Бьярке

1

Решение

Ошибка указывает, что компоновщик не может найти библиотеки rw_sandbox, rw_sandbox и т. Д. Убедитесь, что у вас есть пути к расположению библиотек, указанному в вашем make-файле.

2

Другие решения

В сообщении говорится, что он не находит библиотеки, необходимые для связи вашей программы. Быстрый взгляд на инструкция по установке говорит:

Это удобно, если переменные окружения ROS автоматически добавляются в ваш сеанс bash при каждом запуске новой оболочки:

echo "source /opt/ros/fuerte/setup.bash" >> ~/.bashrc
. ~/.bashrc

Так что, я думаю, вам следует запустить этот setup.bash, чтобы он обновлял переменные компоновщика (обычно LD_LIBRARY_PATH), чтобы добавить местоположение отсутствующих библиотек.

2

Вы можете связать библиотеки напрямую, добавив -llibs в командную строку g ++.

Пожалуйста, проверьте этот ответ:
Скомпилируйте roscpp без ros (используя g ++)

Там связывание осуществляется путем добавления отдельных библиотек в командной строке.

0
По вопросам рекламы [email protected]