2009-08-28 55 views
0

我已经建立了许多通用模块,我一直保留在一个目录中,并从需要它们的项目目录引用。通用功能的最佳方法

我想知道是否有更好的方法来做到这一点?

通用模块和使用它们的代码都是用C++编写的。

+0

你是什么意思的“引用”,将源文件和头文件添加到其他项目,或只包括头和链接到一个静态库? – 2009-08-28 09:23:37

+0

通过引用我的意思是'包括'。 – Konrad 2009-08-28 09:31:53

回答

3

我会建议创建一个静态库并与其链接。它比DLL简单得多,您不必担心版本控制问题,而且您可以像使用公共模块一样处理全部问题。

编辑:基本上,静态库是对象文件的集合。如果您使用Visual Studio,则可以创建一个静态库项目(或更改项目的输出类型),该项目将创建一个可在应用程序中链接的.lib文件。如果您使用GCC,可以使用“ar”从一堆.o文件创建库文件,并再次将其链接到您的应用程序。

+0

我喜欢这个想法,你能提供更多的信息或链接到解释吗? – Konrad 2009-08-28 09:30:56

0

我喜欢把它们放在一个DLL中,以便我的可执行文件的大小变得更小。

+0

+1 downvote是荒谬的。反驳。 – Sahas 2009-08-28 09:37:13

1

管理和改进你的私人工具对于程序员来说是一件很重要的事情。 我个人总是以“尽可能简单”的方式去做。

他们之间的联系越快,我的工作越快,我越觉得“在家”。 我甚至有时会把所有的订单都扔掉,然后把它们放到默认库中,包括路径和whoopie,他们在那里为你服务。 (当然不会推荐,但它很快很容易)

我不知道你为什么使用dll,因为正常的lib会导致更少的头痛。

提示:建立一个独立的项目。 让他们处于中心逻辑位置。 (也许是myWorkspace/MyLibs) 由于您的工具集可能会随着您正在处理的每个项目而增长/改变/改进,因此我有时会设置我的工作环境以便能够快速切换,添加内容并返回到原始项目。 在这种情况下,将它作为项目依赖项包含在IDE中可以自动构建并重新链接,这一点很有用。对于几乎所有的IDE,这都是微不足道的。

然而,一个不同的问题是雇主。 他们通常会对您将项目带入项目的事情保持警惕。特别是如果你想关闭他们的来源。但这是另一个问题的故事;)

+0

关于雇主的好处 - 但是这只是为了我自己的个人项目。 – Konrad 2009-08-28 09:39:55