Как я могу использовать eclipse для отладки сценария, сгенерированного libtool? - PullRequest
6 голосов
/ 16 ноября 2011

У меня большой проект на c ++, собранный с помощью libtool.проблема в том, что eclipse не запускает сценарий, сгенерированный libtool, и я получаю «Программа не является распознанным исполняемым файлом».сообщение об ошибке.Как я могу использовать отладчик Eclipse?В настоящее время я использую kdevelop3 в качестве редактора и отлаживаю с пониманием ... что ужасно.

Возможно, я мог бы запустить настоящий исполняемый файл, который находится в ./libs каталога проекта, но тогда мне придетсявручную установите LD_LIBRARY_PATH и все в таком духе ... должен быть лучший способ для этого.

любая помощь будет оценена!

Ответы [ 5 ]

2 голосов
/ 09 февраля 2017

Вы можете обойти это, запустив реальный исполняемый файл вместо скрипта libtool.Исполняемый файл обычно находится в .libs/.Поэтому в вашей конфигурации отладки на главной вкладке установите значение C/C++ Application на что-то вроде .libs/my_application.Затем все, что вам нужно сделать, - это обновить LD_LIBRARY_PATH в вашей конфигурации отладки.

Перейти на вкладку среды вашей конфигурации отладки и создать новую переменную среды с именем LD_LIBRARY_PATH.Вы хотите добавить каталог .libs в путь.Таким образом, значение должно выглядеть следующим образом: ${project_loc}/.libs:$LD_LIBRARY_PATH при условии, что ваша папка .libs находится прямо в каталоге проекта.

2 голосов
/ 21 апреля 2012

Запуск сценария вместо исполняемого файла все еще не поддерживается в Eclipse, см. эту ошибку .Пока эта функция не представлена, вы не сможете отлаживать проект с поддержкой libtool в Eclipse, если не сохраните что-то вроде

    path/to/configure --disable-shared

отдельной конфигурации, таким образом полагаясь на статическое связывание только для целей отладки.Для этого вам

  1. Открыть Project|Properties из верхнего меню

  2. Выбрать Autotools|Configure Settings из левого меню окна

  3. (Опционально) Создайте новую конфигурацию сборки с выделенным C/C++ Build|Builder Settings|Build location

  4. В поле configure|Advanced заполните «Дополнительные параметры командной строки»с --disable-shared

1 голос
/ 14 февраля 2014

Во-первых, вы можете отключить промежуточный скрипт libtool, добавив -no-install к LDFLAGS в вашем Makefile.am ИЛИ вы можете просто запустить make install и выполнить отладку из установленного двоичного файла.

Для второго пункта вам необходимо установить и экспортировать LD_LIBRARY_PATH до запуска затмения.

1 голос
/ 08 января 2012

Я думаю, что можно написать небольшую программу-обертку для вставки exec 'sh libtool --mode execute' для запуска gdb.Назовите его «gdb-libtool» и вызовите его вместо gdb.

Я занимаюсь разработкой как под Windows, так и под Linux, так что это то, что мне нужно для себя.получить правильные пути при вызове libtool и gdb ... чтобы сделать это.

Приветствия, Джерри.

1 голос
/ 09 декабря 2011

Вам нужно убедить затмение запустить gdb следующим образом:

$ libtool --mode=execute gdb <your-program>

См. https://www.gnu.org/s/libtool/manual/html_node/Debugging-executables.html

...