GCC创建MIME类型应用程序/X-SharedLib而不是应用程序/X-Application
gcc creates mime type application/x-sharedlib instead of application/x-application
给定以下C 代码'mini.cpp':
#include "iostream"
using namespace std;
int main() {
cout << "Hello World" << endl;
return 0;
}
和编译器命令:
g++ -o hello mini.cpp
的结果 mimetype hello
是
hello: application/x-sharedlib
如何将'application/x-application'作为哑剧类型?
我在Kubuntu上使用GCC 6.2.0。
GCC未设置MIME类型。mimetype
根据文件内容猜测适当的MIME类型。对于小精灵文件(大多数编译的二进制文件和共享库),标头包含一个字段e_type
,该字段识别其类型。如果是ET_DYN
,则mimetype
将其视为共享库。
默认情况下,GCC/LD将产生将e_type
设置为ET_EXEC
的二进制文件,这些二进制文件被检测为application/x-executable
。当使用命令行选项-pie
时,会创建独立于位置的可执行文件,该可执行文件可能像共享的库一样,在不同的地址上加载并仍然有效。因为这与共享库非常相似,以免对加载程序进行太多的更改,因此即使可以直接执行这些二进制文件为ET_DYN
。
包括您在内的某些Linux发行版将-pie
设置为默认值。仍然可以用-no-pie
覆盖这一点,但是MIME类型被误导的事实不应被视为错误,除非您知道自己在做什么,否则您不应该覆盖它。-pie
允许提供一些与-no-pie
根本不相容的额外的安全保护。
要在qt/c GUI应用程序上求解它,请在.pro文件上添加以下行:
QMAKE_LFLAGS += -no-pie
相关文章:
- 试图在visual studio上用C++创建一个桌面应用程序
- FFmpeg:制作一个应用程序比直接使用ffmepg更好吗
- 在C应用程序中运行C++(带有STL)函数
- 使用VerQueryValue检索应用程序的文件描述
- Qt C++静态thread_local QNetworkAccessManager是线程应用程序的好选择吗
- 使用调试/崩溃报告将应用程序部署到客户端
- C++控制台应用程序阻止退出
- 码头化的C++应用程序是否向后兼容早期的内核版本
- 将应用程序从32位移植到64位时出现问题
- 如何改变c++应用程序的视觉效果
- WM_CTLCOLORSTATIC从未在WIN32应用程序中触发
- PC中的程序和PHONE中的本机描述应用程序之间的数据连接
- 应用程序崩溃并显示"symbol _ZdlPvm, version Qt_5 not defined in file libQt5Core.so.5 with link time reference"
- 示例外壳应用程序显示的 V8 "segmentation fault (core dumped)"错误
- phytec phyBOARD iMX-6在从闪存而不是SD卡运行qt5 opengles应用程序时表现不佳(FPS减半
- 为什么导入Mixed native/CLR lib.dll的本机C++应用程序没有在Mixed lib.dll中的外部变
- 如何从Windows应用程序输出到标准?
- C++应用程序 MySQL odbc 数据库连接错误:在引发"otl_tmpl_exception<>"实例后终止调用
- 如何在 64 位 vb.net Windows 应用程序中引用 32 位 dll
- 如果整个应用程序是虚拟映射的,为什么 new 会进行系统调用?