gpt4 book ai didi

c - 从 gcc 和 mingw 中删除不需要的代码

转载 作者:太空宇宙 更新时间:2023-11-04 05:46:03 44 4
gpt4 key购买 nike

我注意到 mingw 在调用 main() 之前添加了很多代码,我假设它用于解析命令行参数,因为其中一个函数称为 __getmainargs(),并且还有很多字符串被添加到最终的可执行文件中,例如mingwm.dll 和一些错误字符串(以防应用程序崩溃)表示 mingw 运行时错误或类似的错误。

我的问题是:有没有办法删除所有这些东西?我不需要所有这些东西,我试过 tcc(微型 C 编译器)它完成了工作。但不能像 gcc (solaris/mac) 那样跨平台

有什么想法吗?

谢谢。

最佳答案

是的,您确实确实需要所有这些东西。它们是您的代码在其中运行的 C 环境的启动和拆卸代码。

除了低级嵌入式解决方案等非托管环境,您会发现几乎所有 C 环境都有类似的东西。诸如某些类 UNIX 操作系统下的 /lib/crt0.o 或 Windows 下的 crt0.obj

它们对于成功运行代码至关重要。您可以随意省略不使用的库函数(printfabs 等),但需要启动代码。


一些它可能执行的事情是 atexit 结构的初始化、参数解析、C 运行时库结构的初始化、C/C++ 预编译的初始化主要值(value)观等。

它是高度特定于操作系统的,如果有您不想做的事情,您可能必须获取它的源代码并将其删除,本质上是为您提供自己的精简替代品目标文件。

关于c - 从 gcc 和 mingw 中删除不需要的代码,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4988357/

44 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com