У меня есть простой исходный файл ‘source.cpp:
#include <iostream>
using namespace std;
int main() {
int ival(0);
cout << "Bitte eine Ganzzahl: ";
cin >> ival;
cout << "Sie gaben die Zahl " << ival << " ein\n";
cout << "Ein Monster mit "<< "zwei Zeilen\n";
return 0;
}
Теперь я собираю это с:
g++ source.cpp -o out
Результат отображается в Thunar как Тип «разделяемая библиотека». Я могу запустить его в Shell с помощью ./out, но я не могу запустить его в Thunar с помощью двойного щелчка.
ЛДД говорит:
linux-vdso.so.1 (0x00007fffb55be000)
libstdc++.so.6 => /usr/lib/libstdc++.so.6 (0x00007fd5d4387000)
libm.so.6 => /usr/lib/libm.so.6 (0x00007fd5d403b000)
libgcc_s.so.1 => /usr/lib/libgcc_s.so.1 (0x00007fd5d3e24000)
libc.so.6 => /usr/lib/libc.so.6 (0x00007fd5d3a6d000)
/lib64/ld-linux-x86-64.so.2 => /usr/lib64/ld-linux-x86-64.so.2 (0x00007fd5d4910000)
Когда я устанавливаю флаг -static, я получаю Typ ‘Program’, и он работает в Thunar, как и ожидалось, но, конечно, он больше. ldd говорит: «Программа не связана динамически»
Несколько лет назад я скомпилировал этот источник, но я не могу вспомнить опции компилятора, и у меня есть результат в Typ ‘Program’, который не был статически связан. Лдд сказал так же, как в первом примере.
Итак, что я могу сделать, чтобы получить исполняемый файл с типом «Программа», который может быть выполнен двойным щелчком в диспетчере файлов.
(Я определенно установил флаг исполняемого файла во всех примерах)
Задача ещё не решена.
Других решений пока нет …