2011-09-07 52 views
3

我需要编译一个现有的C++库作为一个lib和一个DLL,然后在不同的应用程序中使用静态和动态库。我使用VS2010。编译一个C++库作为一个静态库和动态DLL与VS

我不能做的是编辑所有的头文件,以便添加__declspec(dllexport)指令导出,因为库必须保持原样。

在Mac下,我能够毫无问题地编译和使用dylib,但我知道VS在这方面缺乏。

在VS中,为了让函数“导出”(即在编译时从应用程序可链接),首先编译一个静态库,然后编译一个dll是可行的?换句话说,我可以像使用__declspec(dllexport)生成的导出库一样使用静态库吗? 有更好的解决方法吗?

回答

2

我需要将现有的C++库编译为lib和dll,然后在不同的应用程序中使用静态和动态库。我在 使用VS2010。

为此创建配置。例如发行LIB,释放DLL等

什么我不能做的是编辑,以添加 __declspec(dllexport)的指令输出,作为库必须是所有头文件 保持为它是。

只需将模块定义文件(* .def)添加到导出函数列表即可。

换句话说,我可以使用静态库,就好像是用__declspec(dllexport)的产生的出口LIB ?

不,这些库是不同的。当你建立一个DLL时,你会得到一个二进制文件和一个lib文件。

+0

谢谢Sergius。 .def文件是VS可以生成的东西,还是我必须手动创建?该库包含许多功能... – step

+0

AFAIK VS只能生成空的.def文件。 –

相关问题