Попытка запустить Kile дает ошибку сегментации в Linux Mint 19

Ваш:

$(startBasics)

не имеет смысла и является причиной вашей проблемы. Это подмена команды. $ (cmd) расширяется до вывода cmd (с удалением завершающих символов новой строки и при условии разделения + glob, поскольку вы не цитировали его). Вы просите оболочку составить команду из вывода startBasics .

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

Чтобы добиться подстановки команд, оболочка запускает startBasics со своим stdout, перенаправленным в канал, и читает с другого конца канала. Все процессы gnome-terminal наследуют этот стандартный вывод.

Оболочка увидит eof на другом конце конвейера только тогда, когда все файловые дескрипторы, открытые до конца записи (во всех процессах), закрыты. Это, вероятно, произойдет только тогда, когда все gnome-terminal , запущенные startBasics , будут завершены.

Здесь вы хотите:

#!/bin/sh -

startBasics() {
    gnome-terminal -e "sth" &
    gnome-terminal --tab -e "sth_else" &
}
doOneThing() {
    gnome-terminal --working-directory=/myDir1/build/ -e './myExecutable1' &
}
doAnoterThing() {
    gnome-terminal --working-directory=/myDir2/build/ -e './myExecutable2' &
}

startBasics
doOneThing
doAnoterThing

wait # if you'd rather wait for all those processes to finish
     # before exiting.
4
24.03.2019, 20:01
2 ответа

После долгих поисков я нашел ответ в сообщении об ошибках Debian на бирже:

If the okular package is not installed, kile can not start and crashes on a segmentation fault.

Решение состояло в том, чтобы запустить

sudo apt-get install okular
8
27.01.2020, 20:52

В Ubuntu 18.04 была аналогичная ошибка, и я использовал один из этих обходных путей.

  1. kile работает, если запущен из Activity, но не в терминале.
  2. удалить библиотеки Qt5 из LD _Библиотека _Путь, например. в.bashrc
0
27.01.2020, 20:52

Теги

Похожие вопросы