Как запустить программу на C ++, написанную в eclipse, из терминала - PullRequest
0 голосов
/ 25 мая 2018

Я использую Ubuntu и написал свой код на C ++ в Eclipse Neon.Моя рабочая область содержит 4 проекта.Основной проект называется BaseCppProjectRun (он содержит файл main.cpp), и у меня есть другие проекты с такими именами: Encoders, frmwrk, NetworkLayer - BaseCppProjectRun, использующий каждый из них.

Если я запускаю свою программу непосредственно иззатмение все работает.Но я хочу запустить свою программу из терминала - и не могу.Потому что, когда я пытаюсь запустить мою программу следующим образом:

root@ubuntu:/builds/BaseCppProject/BaseCppProjectRun# ./Debug/BaseCppProjectRun

я получаю эту ошибку:

./Debug/BaseCppProjectRun: error while loading shared libraries: libfrmwrk.so: cannot open shared object file: No such file or directory

Как я уже говорил, если я запускаю ее напрямуюиз eclipse все работает.

Как мне запустить программу из терминала?

Ответы [ 2 ]

0 голосов
/ 27 мая 2018

Я наконец понял это!

См. Ответ Маркуса Мюллера + мои шаги, вот как я это исправил (все шаги через терминал):

  1. Создать новый каталог вмой каталог рабочей области и назвал его libs.
  2. В каждом из ваших проектов выполните: щелкните правой кнопкой мыши> c / C ++ Build> Шаги сборки (вкладка) и в шагах после сборки вставьте:

cp ${BuildArtifactFilePrefix}${BuildArtifactFileName} "${WorkspaceDirPath}/libs/"

Этот код копирует файлы so непосредственно в каталог libs при компиляции программы.

И, наконец, в вашем терминале выполните следующее:

export LD_LIBRARY_PATH=/builds/BaseCppProject/libs/

Теперь вы можете запускать программу через терминал.

0 голосов
/ 25 мая 2018

Как Linux должен знать, где найти libfrmwrk.so, если вы не указали это ни там, где он обычно выглядит, ни в том, чтобы указать, где его можно найти.

Кажется, Eclipse устанавливает путикомпоновщик времени выполнения выглядит так, что когда ваша программа загружается, компоновщик времени выполнения знает, где найти ваш libfrmwrk.so и т. д.

Вам также потребуется

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

Я не работалс Eclipse CDT в течение многих лет, но теперь вы, вероятно, можете экспортировать некоторые форматы проектов, которые позволят вам легко устанавливать объекты.

Еще одна вещь: кажется, что вы работаете с программным обеспечением, вы все еще отлаживаете как root:ужасная идея, и если ее можно избежать, избегайте ее.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...