.lib文件未创建(VS2008)

Ada*_*lor 10 visual-studio-2008

我在我的解决方案中添加了一个dll项目,并通过可执行项目显式引用它.可执行文件抱怨它无法找到lib.

有任何想法如何设置项目来创建所需的lib文件?并且为什么项目不会创建一个?!?

干杯

注意 我已搜索项目,并且文件未在任何地方创建.

Jer*_*emy 12

在DLL项目的链接器 - >高级属性选项卡中,验证导入库(您要查找的.lib文件)的值是否正确/合理.此属性的值将确定导入库的名称以及链接器将其写入的位置.

您可能还需要在项目中生成导入定义文件(.def),或检查头文件并确保导出的函数在头文件中使用__declspec(dllexport)限定符进行标记.这通常由#define切换,例如:

#ifdef MYAPI_EXPORTS
#define MYAPI_API __declspec(dllexport)
#else
#define MYAPI_API __declspec(dllimport)
#endif

void MYAPI_API foo(int bar);
Run Code Online (Sandbox Code Playgroud)

基本上你希望编译器在构建库时看到dllexport,但是当你的客户端代码是#include头文件时dllimport.如果Visual Studio生成了基本的项目结构,它可能已经创建了一个合适的#define来使用.

您不必同时创建.def文件并添加dllexport,只需添加一个或另一个.我更喜欢后者.此外,如果选择使用.def文件,则需要在库项目的链接器属性中指定它.