首页 文章

使用VS将C库编译为静态库和动态DLL

提问于
浏览 164
3

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

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

在Mac下我能够编译和使用dylib没有问题,但我知道VS在这方面缺乏 .

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

1 回答

  • 2

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

    为此创建配置 . 例如Release LIB,Release DLL等 .

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

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

    换句话说,我可以使用静态库,就像使用__declspec(dllexport)生成的导出库一样吗?

    不,这些图书馆是不同的 . 构建DLL时,您将获得二进制文件和lib文件 .

相关问题