C++静态库和共享库
C++ static and shared libraries
我想在C++中创建一个静态库来存储我的函数。我知道这个问题已经在Cplusplus论坛上被问到了,但我真的可以用更准确地描述要做什么。
据我所知,您创建了一个新的Win32程序,然后添加头文件(.h)和代码文件(.cpp).
所以事实上我有几个问题。
1-如何将我的代码放入这些文件中?我使用.cpp吗?
2-我确实设法单独制作了一个带有add函数的简单库,但在编译之后我无法将它#包含在程序中。为什么会这样?
有人能写一个循序渐进的方法吗?这样我终于可以做到了。我知道MSDN有一个关于这方面的教程,我已经看过了。问题是它使用OOP方法来创建静态库,并调用库中的函数经常使用::运算符(认为它是运算符),这正是我想要避免的。基本上,我想从简单开始。
谢谢你的帮助。
静态库的理念是,像往常一样编写代码,但将其编译为静态库。静态库的用户仍然需要您的头文件,但他们不再需要.CPP文件,因为实际实现包含在静态库文件中。
要使用库,请包含所需的头文件,然后将库文件与程序链接。
这是微软演练的链接。http://msdn.microsoft.com/en-us/library/vstudio/ms235627.aspx
如何使用Visual Studio创建和使用静态库
以下是您在Visual Studio 2012中的具体操作方法。
- 若要创建库,请创建一个新的C++项目。在向导的"应用程序设置"中,选择"静态库"。取消选中预编译标头
- 根据需要创建库。不要忘记在头文件中声明所有内容
- 像往常一样编译项目。这将在解决方案的调试文件夹中创建一个.lib文件
- 要使用库,请像往常一样创建一个应用程序
- 若要将库与项目链接,请在visualstudio中将.lib文件拖动到项目中
- 若要让visualstudio找到您的头文件,请右键单击您的项目。选择属性->配置属性->C/C++。有一个名为Additional Include Directories的输入框。在这里,您必须写入库的头文件的路径
现在,您可以使用头文件,就好像它们是由您的项目直接创建的一样。库的实现取自.lib文件,所有内容都应该编译并运行良好。
另一种选择是在应用程序中引用整个libary项目。要执行此操作,必须在解决方案中获取库项目。右键单击Visual Studio中的解决方案->添加->现有项目。然后你必须参考这个项目。右键单击您的项目->引用->通用属性->框架和引用->添加新引用->选择您的项目。现在,您可以在此解决方案中编辑库,并直接在应用程序中使用它。
- 将成员变量添加到共享库中的类中,不会破坏二进制兼容性吗
- 是否可以通过C++扩展强制多个python进程共享同一内存
- 在cuda线程之间共享大量常量数据
- 如何从具有移动语义的类对象中生成共享指针
- 在c代码之间共享数据的最佳方式
- 在两个类中共享相同的函数调用,并在不需要时避免空实例化
- 将静态库链接到不带-fPIC的共享库中
- 为什么std::互斥需要很长的、非常不规则的时间来共享
- 使用Boost Interprocess创建托管共享内存需要很长时间
- 无法在Ubuntu上将共享库与Eclipse链接
- 从python调用openMP共享库时,未定义opnMP函数
- 在为LINUX创建共享库时,如何避免STL的私有/弱副本
- 为什么我的共享库中存在展开符号
- 使用共享指针的函数调用,其对象应为 const
- 具有两个独占锁组的共享锁
- 共享队列的线程安全
- 共享指针和具有自定义删除程序的唯一指针之间的语法差异背后的任何原因
- 多个"常量引用"变量可以共享同一个内存吗?
- 如何访问由共享指针保存的类方法?
- 从矢量或地图中删除共享指针