我的问题是,当你编译你的c ++程序时,为什么它都被放入一个exe文件中?该文件可能变得很大。你会使用DLL库缩小大小,还是有其他文件可以制作?我只是想知道如何制作一个使用单独文件运行的程序。
(编辑)我只是不想在一个文件中全部使用它。最终文件可能变得太大,以至于计算机无法处理它,对吧?必须有一种方法来分隔文件。就像在java中一样,一切都在类文件中,这看起来更简单,更有效。像FAT32这样的驱动器不能有超过4千兆字节的文件,所以他们需要一个更细分的程序。我看了一下名为portal的游戏,它的exe是100KB,它有大约100个dll文件!
答案 0 :(得分:3)
回答你的问题,是的。如果您愿意,您绝对可以将程序拆分为单独的DLL文件。
我见过一些开发人员将实用程序函数编译成一个单独的公共DLL文件,这些文件可以作为引用包含在其他项目中。这样就可以从中调用它的对象和方法。
事后看来,编译的代码相对较小。二进制数据实际上消耗的空间最多:视频,图像,模型,声音等。尽管较小的程序可以将这些资源直接打包到可执行文件中,但由于许多显而易见的原因,它通常不是一个好主意。
最后,大型可执行文件对于当今的技术来说不是一个大问题。对于较小的节目,我不会出汗。更重要的是项目得到的设计开发。
答案 1 :(得分:2)
太大了什么?如果是由于存储空间限制,将其拆分为多个文件将不会为您带来任何好处。除非你以某种方式溢出平台上文件的最大大小(比如某些32位平台上的2GB限制),这似乎不太可能,你可能会担心没有问题。
您可以通过关闭编译器中的调试选项,在各种平台上“剥离”它,设置优化设置以优化代码大小而不是执行速度等来减小生成的可执行文件的大小。
答案 2 :(得分:0)
正如OP建议的那样,将exe拆分为多个文件(在Windows上)的方法是使用dll。
评论者是正确的,这实际上不会占用磁盘上的任何空间,也不会保存任何内存,但还有其他原因将应用程序拆分为多个文件。例如,共享代码(单个dll可以由多个应用程序使用),或者帮助应用程序加载更快(仅在实际需要时加载dll)。