8

在 C++Builder XE5 中。

我的理解二进制文件MyProject.res(由编译器在与.cbproj文件相同的目录中创建)包含程序图标的编译版本和项目版本详细信息(尽管我的似乎也包含 XML 清单)。

但是这个信息也包含在.cbproj文件和.ico files; 如果我删除该.res文件,那么它似乎会被重新创建,就像我下次打开项目时一样。

那么标记*.res为不在源代码管理中是否安全?(我用git)。和/或者是否可以在与目标文件相同的目录中生成它,所以它不会与源文件混合?

(这在 C++Builder 5 中肯定是不安全的——如果你删除了 .res 文件,那么它会抱怨找不到它,并且你丢失了你的图标)。

更新:这也适用于.tlb文件吗?这似乎是根据.ridl文件编译的,如果我删除它,它会自动重新生成。

4

2 回答 2

4

如果删除,C++ Builder 6.0 和更高版本将重新创建 RES 文件。我将它们视为其他临时/构建文件(如 OBJ 文件)并且不将它们放入版本控制软件中。不过,我确实有包含所有这些文件的夜间备份,我认为这仍然是一种很好的做法。

我不确定 TLB 文件。我会暂时删除(aka-rename)一个,看看它是否被重新创建到相同的状态。如果是这样,应该与 RES 文件相同。

但是,如果您拥有的只是编译资源,则这不适用于 3rd 方库。在这种情况下,我仍然没有放入我的版本控制中,因为我不会修改它们。我只有我的备份。

于 2014-08-27T00:55:20.390 回答
3

值得一提的是,TFS 源代码管理默认是排除*.res但包含*.tlb.

因此,您应该期望*.res文件由其关联的构建创建。如果构建不存在,*.res则应包含该文件。

我怀疑您对*.tlb正在构建的文件也是正确的,但也许 TFS 在默认情况下并不排除这些,因为扩展名并非完全是 OLE 类型库文件独有的。

于 2017-10-11T16:37:41.807 回答