我不确定我是否会以正确的方式解决这个问题。我正在制作一些c ++类,用于2个应用程序。我将不得不编译它们以在Cocoa应用程序中使用,然后编译以便与fastcgi一起使用。
我应该创建一个动态库吗?
答案 0 :(得分:5)
如果源文件必须使用不同的条件编译设置进行编译才能在两个应用程序中工作,那么您最好发送源代码并将其与应用程序本身一起编译。
否则,您可以创建一个库并将编译后的版本与标题一起发送以编译应用程序。图书馆是否应该是动态的取决于您的情况。如果您不需要在不重新编译可执行文件的情况下单独更新库,那么一个简单的静态库可能是更好的选择。
答案 1 :(得分:3)
不要忘记您也有静态库作为选项。在某些平台上,动态库伴随着一堆恼人的包袱。它们也稍微慢一点(虽然这通常不是重点)。如果不重新编译程序也无法替换它们(您可能在Web环境中更关注这一点)。最后,当你只是在计算机上运行其中一个程序时,你可以通过使lib动态获得任何东西......而只有两个程序时只有两个。
答案 2 :(得分:0)
如果要在项目之间共享多个C ++类,通常应将它们放在类库中。不过对Cocoa不熟悉。
答案 3 :(得分:0)
如果你有很多课程,那么共享库。确保只使用抽象类,公共头文件中没有代码(模板可以)。提供工厂(或普通函数)来实例化对象。
如果这听起来像你的编码太多,那么,现代版本控制使得简单地重复使用多个项目中的文件,生活在同一个存储库中,这是非常轻松的。
P.S。另一个要考虑的因素是有多少人参与该项目。共享库是一项额外的责任。如果你有一个人要照顾它,那么从组织的角度来看,它可能是值得做的。