我有一个简单的源文件&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中显示为Type&#39;共享库&#39;。我可以使用./out在Shell中运行它,但我无法通过双击在Thunar中运行它。
ldd说:
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标志时,我会得到一个典型的程序&#39;它按照预期在Thunar工作,但肯定会更大。 ldd说&#39;该程序没有动态链接&#39;
几年前我编译了这个来源,但我不记得编译器选项,我已经在Typ&#39; Program&#39;中得到了结果。这与静态无关。 ldd和第一个例子说的一样。
那么,我该怎么做才能获得类型为&#39; Program&#39;的可执行文件。这可以通过双击文件管理器来执行。
(我确实在所有示例中都设置了可执行文件标志)