无法添加静态库

时间:2009-12-01 02:40:51

标签: c++ dll linker openssl static-libraries

我正在尝试构建一个DLL,它需要从openssl包引用一个库,即libeay32.dll。我似乎无法在Property Pages-> Common Properties-> Add New Reference下添加它作为参考,因为它给出错误“无法添加对文件'C:\ OpenSSL \ libeay32.dll'的引用,因为它既不是.NET程序集或注册的Active X Control。当我使用Linker-> Input-> Additional Dependencies并设置静态lib'C:\ OpenSSL \ lib \ libeay32.lib'时,我可以编译并运行它。但是最终的结果是我还需要包含libeay32.dll。我做错了什么?

2 个答案:

答案 0 :(得分:4)

你正确地做了一切。 “添加引用”适用于.NET程序集(以及通过.NET COM interop使用的COM组件)。您尝试过的第二种方法是为本机代码执行此操作的正确方法,但libeay32.lib不是静态库;它是DLL的导出库。

答案 1 :(得分:1)

正如Pavel所说,libeay32.lib不是您的应用程序可以静态链接并运行的完整库。它用于解析对动态库dll的引用。因此,您的应用仍需要运行dll。

http://msdn.microsoft.com/en-us/library/f0z8kac4.aspx