исходный код скомпилирован в «разделяемую библиотеку»

У меня есть простой исходный файл ‘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’, который не был статически связан. Лдд сказал так же, как в первом примере.

Итак, что я могу сделать, чтобы получить исполняемый файл с типом «Программа», который может быть выполнен двойным щелчком в диспетчере файлов.

(Я определенно установил флаг исполняемого файла во всех примерах)

0

Решение

Задача ещё не решена.

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]