c++独立文件

c++ separate files?

本文关键字:文件 独立 c++      更新时间:2023-10-16

我的问题是,当你编译你的c++程序,为什么它都放在一个exe文件?文件可能会变得太大。您会使用dll库来缩小大小,还是有其他文件可以制作?我只是想知道如何制作一个使用单独文件运行的程序。

(编辑)我只是不希望所有的在一个文件。文件最终可能会变得太大,计算机无法处理,对吧?一定有办法把这些文件分开。就像在java中一样,一切都在一个类文件中,这看起来更容易和更有效。像FAT32这样的驱动器不能存储大于4gb的文件,所以它们需要一个更细分的程序。我看了看我的游戏《传送门》,它的exe是100KB,它有大约100个dll文件!

回答你的问题,是的。如果您愿意,您完全可以将程序拆分为单独的DLL文件。

我看到一些开发人员将实用程序函数编译成一个单独的公共DLL文件,可以作为参考包含在其他项目中。这样就可以从它调用它的对象和方法。

事后看来,编译后的代码相对较小。二进制数据确实消耗了最多的空间:视频、图像、模型、声音等。尽管对于较小的程序来说,将这些资源直接打包到可执行文件中是可能的,也是常见的,但由于许多显而易见的原因,这通常不是一个好主意。

最后,对于今天的技术来说,大型可执行文件并不是一个大问题。对于较小的程序,我不会担心。项目越大,设计开发就越重要。

太大了?如果是由于存储空间的限制,那么将它分割成多个文件将不会给你带来任何好处。除非您以某种方式超出了平台上文件的最大大小(例如某些32位平台上的2GB限制),这似乎是不太可能的,否则您可能担心的是一个无关紧要的问题。

您可以通过关闭编译器中的调试选项,在各种平台上"剥离"它,设置优化设置以优化代码大小而不是执行速度等来减少生成的可执行文件的大小。

将一个exe文件分割成几个文件的方法(在Windows上)是,正如OP建议的那样,使用dll。

评论者是正确的,这实际上不会减少磁盘空间,也不会节省任何内存,但是将应用程序拆分为多个文件还有其他原因。例如,共享代码(单个dll可以被多个应用程序使用),或者帮助应用程序更快地加载(仅在实际需要时加载dll)。