我如何将c ++编译为多个文件?

问题描述 投票:0回答:1

我有一个包含很多类的程序(cpp)。每个类都在单独的源文件(.h + .cpp)中。如何将已编译的程序拆分为多个文件(而不是一个大的可执行文件)?假设每个类都有一个文件(与代码结构相同)。因此,每次特定类发生更改时,我仅编译该类,并替换与该类相关的特定已编译文件。(类似于Windows中的.DLL文件。)

来自现实生活的示例:我正在制作用于管理mysql的TUI界面。我想用ncurses创建mysql文本编辑器(TUI)。

用于创建和管理单个窗口对象的代码(类)在'textWin.cpp'+'textWin.h'

用于通过从上一类创建Windows对象来管理多个窗口的代码(类)在winMan.cpp winMan.h中

用于管理mysql数据库的代码(类)在:mysql.cpp mysql.h

依此类推...

所以,我有以下文件:MyProgram.cpp-winMan.cpp + winMan.h-textWin.cpp + textWin.h-mysql.cpp + mysql.h-..-..

经过g ++编译后,我得到了一个可执行文件'./MyProgram'(大小约为15Mb。),我将其交付给所有客户(其中有1000个)。

我刚刚在textWin.cpp中发现了一个错字,我将其修复,并告诉所有客户有一个更新...他们所有人都需要下载一个15Mb的大文件,这占用了带宽和服务器资源,只是一个小的更新。有没有一种方法可以将所有仅包含textWin类的已编译代码的较小文件发送给我的所有客户?

我在Centos7上使用g ++

c++ makefile compilation
1个回答
0
投票

当然,您可以将文本放入单独的文本文件中,然后仅将它们部署在错误中。对于必须部署二进制差异的特殊用例,此How do I create binary patches?可能会有帮助。

另一种选择是进行正确的版本控制,以便您的客户可以自行决定是否需要此更新。

© www.soinside.com 2019 - 2024. All rights reserved.