Не запускается самодельное приложение (GTK) мышью, а в консоли запускается.

Модератор: Модераторы разделов

Аватара пользователя
жучара
Сообщения: 788
ОС: астралинукс

Не запускается самодельное приложение (GTK) мышью, а в консоли запускается.

Сообщение жучара »

Друзья! Пишет в местном messagebox, что
"Нет установленного приложения для файов типа разделяемая библиотека. Найти подходящее приложение для открытия этого файла?"
Тыкаю на "Да" и всё на этом.

...А вообще интересно. Какая может быть разделяемая библиотека? (код тут взял)

Код: Выделить всё

#include <gtk/gtk.h>

int main(int argc, char *argv[]) {

  GtkWidget *window;

  gtk_init(&argc, &argv);

  window = gtk_window_new(GTK_WINDOW_TOPLEVEL);
  gtk_widget_show(window);
  
  g_signal_connect(window, "destroy", G_CALLBACK(gtk_main_quit), NULL);  

  gtk_main();

  return 0;
}

Shell

$ gcc -o simple simple.c `pkg-config --libs --cflags gtk+-3.0`
$
(Всё, в консоли, как я уже сказал, запускается без проблем ./simple, файл исполняемый)

Разделяемая библиотека это вот (к примеру):

Shell

$ file hello.o
hello.o: ELF 64-bit LSB relocatable, x86-64, version 1 (SYSV), not stripped
$
А у меня вот:

Shell

$ file center
center: ELF 64-bit LSB pie executable, x86-64, version 1 (SYSV), dynamically linked, interpreter /lib64/ld-linux-x86-64.so.2, BuildID[sha1]=31b4e07f74fc49f8654f55c607022489878aa035, for GNU/Linux 3.2.0, not stripped
$
ЧЯДНТ? Спасибо, кто откликнется. Debian 11.

А всё, разобрался, почему-то надо было так компилить:

Shell

$ gcc -o simple simple.c -no-pie `pkg-config --libs --cflags gtk+-3.0`
$
Я просто читаю маны.
Спасибо сказали:
Аватара пользователя
Bizdelnick
Модератор
Сообщения: 19421
Статус: nulla salus bello
ОС: Debian GNU/Linux

Re: Не запускается самодельное приложение (GTK) мышью, а в консоли запускается.

Сообщение Bizdelnick »

жучара писал(а):
21.05.2022 17:27
А всё, разобрался, почему-то надо было так компилить
Не надо. PIE не просто так придумали и по умолчанию включили. Что их до сих пор некоторый софт путает с разделяемыми библиотеками — это не страшно.
А мышью бинарники в файловых менеджерах никто не запускает. Для этого desktop-файлы существуют. Впрочем, можете просто другой ФМ попробовать, если очень хочется.
жучара писал(а):
21.05.2022 17:27
Разделяемая библиотека это вот (к примеру)
Это тоже не разделяемая библиотека, это неслинкованный объектный файл. Разделяемая библиотека вот:

Shell

% file /usr/lib/x86_64-linux-gnu/libc-2.31.so
/usr/lib/x86_64-linux-gnu/libc-2.31.so: ELF 64-bit LSB shared object, x86-64, version 1 (GNU/Linux), dynamically linked, interpreter /lib64/ld-linux-x86-64.so.2, BuildID[sha1]=2e5abcee94f3bcbed7bba094f341070a2585a2ba, for GNU/Linux 3.2.0, stripped
%
Пишите правильно:
в консоли
вку́пе (с чем-либо)
в общем
вообще
в течение (часа)
новичок
нюанс
по умолчанию
приемлемо
проблема
пробовать
трафик
Спасибо сказали:
Аватара пользователя
жучара
Сообщения: 788
ОС: астралинукс

Re: Не запускается самодельное приложение (GTK) мышью, а в консоли запускается.

Сообщение жучара »

Bizdelnick писал:
22.05.2022 00:53
жучара писал(а):
21.05.2022 17:27
А всё, разобрался, почему-то надо было так компилить
Не надо. PIE не просто так придумали и по умолчанию включили. Что их до сих пор некоторый софт путает с разделяемыми библиотеками — это не страшно.
А мышью бинарники в файловых менеджерах никто не запускает. Для этого desktop-файлы существуют. Впрочем, можете просто другой ФМ попробовать, если очень хочется.
жучара писал(а):
21.05.2022 17:27
Разделяемая библиотека это вот (к примеру)
Это тоже не разделяемая библиотека, это неслинкованный объектный файл. Разделяемая библиотека вот:

Shell

% file /usr/lib/x86_64-linux-gnu/libc-2.31.so
/usr/lib/x86_64-linux-gnu/libc-2.31.so: ELF 64-bit LSB shared object, x86-64, version 1 (GNU/Linux), dynamically linked, interpreter /lib64/ld-linux-x86-64.so.2, BuildID[sha1]=2e5abcee94f3bcbed7bba094f341070a2585a2ba, for GNU/Linux 3.2.0, stripped
%
при изучении чего бы то ни было иной раз очень много создаёшь исполняемых файлов прямо раз за разом, на каждый *.desktop не создашь.
Я просто читаю маны.
Спасибо сказали:
Аватара пользователя
Bizdelnick
Модератор
Сообщения: 19421
Статус: nulla salus bello
ОС: Debian GNU/Linux

Re: Не запускается самодельное приложение (GTK) мышью, а в консоли запускается.

Сообщение Bizdelnick »

жучара писал(а):
22.05.2022 15:58
при изучении чего бы то ни было иной раз очень много создаёшь исполняемых файлов прямо раз за разом, на каждый *.desktop не создашь.
1. Запускайте из терминала.
2. Найдите ФМ, который будет вести себя так, как Вам хочется.
3. Если используемый Вами ФМ запускает не-PIE исполняемые файлы, но не запускает PIE, это баг. Сообщите о нём разработчикам.
Пишите правильно:
в консоли
вку́пе (с чем-либо)
в общем
вообще
в течение (часа)
новичок
нюанс
по умолчанию
приемлемо
проблема
пробовать
трафик
Спасибо сказали: