我正在尝试寻找不同的方法在不同的应用程序中重用我的 C++ 函数。比如说我有以下功能:
Function A(){} // this will do a complex math operation
Function B(){} // this will load a complex shape file
Function C(){} // Print the results.
我需要在 3 个不同的 C++ 程序中使用上述 3 个函数。它们是完全独立的,我试图找出在我的所有应用程序中使用它们的最佳方法,而不是编写相同的代码 3 次。
我正在考虑以下选项:
Option A: Writing static library
Option B: Writing dynamic library
Option C: Windows Services
Option D: Same code and compile everywhere
还有其他选择吗?或者什么是最好的选择?
最佳答案
如果这些函数仅由您和/或您的同事“内部”调用(即它们不会暴露给无权访问您的源代码存储库的人)那么选项(D)就足够了。只需将 .cpp 和 .h 文件保存在源代码存储库的一个众所周知的子目录中,并让每个应用程序的项目文件根据需要引用它们。这很容易实现,并为您提供最大的灵活性(因为每个项目都可以使用最适合其自身需求的不同编译器标志来编译共享 .cpp 文件,如果需要的话,您必须找出一个库适用于所有想要链接到该库的应用程序的编译器标志,但这并不总是很方便)。
如果您正在编写供公众使用的 API,OTOH,事情会变得更加复杂,因为在向公众发布代码后,您将不再完全控制使用哪些版本以及在何处使用。在这种情况下,您必须根据您的用户是谁以及您认为他们最满意的内容来做出决定。
选项 C 可能会被抛弃,因为它对于此类事情来说太过分了,并且会带来将代码绑定(bind)到特定操作系统而没有补偿优势的惩罚。
关于c++ - 寻找与不同 C++ 应用程序共享 C++ 函数的不同方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30269275/