0

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

(编辑)我只是不想将所有内容都放在一个文件中。文件最终可能会变得太大,计算机无法处理,对吧?必须有一种方法来分离文件。就像在 java 中一样,一切都在一个类文件中,这看起来更简单、更高效。FAT32 等一些驱动器的文件不能超过 4 GB,因此它们需要更细分的程序。我看了我的游戏叫portal,它的exe文件是100KB,里面有大约100个dll文件!

4

3 回答 3

3

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

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

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

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

于 2013-03-12T20:48:42.340 回答
2

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

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

于 2013-03-12T20:40:27.093 回答
0

正如 OP 所建议的那样,将 exe 拆分为多个文件(在 Windows 上)的方法是使用 dll。

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

于 2013-03-12T20:48:37.143 回答