我在我的解决方案中添加了一个 dll 项目,并由一个可执行项目显式引用它。
可执行文件提示它找不到库。
任何想法如何设置项目以创建所需的 lib 文件?
并且预想为什么该项目不会创建一个?!?
干杯
注意
我已经搜索了该项目,但没有在任何地方创建该文件。
最佳答案
在 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);
基本上,您希望编译器在构建库时看到 dllexport,但在客户端代码为 #include 头文件时看到 dllimport。如果 Visual Studio 生成了基本的项目结构,它可能已经创建了一个合适的 #define 来使用。
您不必同时创建 .def 文件并添加 dllexport,只需其中之一即可。我更喜欢后者。此外,如果您选择使用 .def 文件,则需要在库项目的链接器属性中指定它。
关于visual-studio-2008 - 未创建 .lib 文件 (VS2008),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/570013/