visual-studio-2008 - 未创建 .lib 文件 (VS2008)

标签 visual-studio-2008

我在我的解决方案中添加了一个 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/

相关文章:

C++ 运行时错误

visual-studio-2008 - 链接错误 : unresolved external symbol ___cudaRegisterLinkedBinary referenced in function ____cudaRegisterAll

visual-studio-2008 - 从源代码管理中排除嵌套项

c++ - 用于标记未初始化变量的 VS 2008 编译器选项

在 Visual Studio 2008 Designer 中工作的 WPF 皮肤库

visual-studio-2008 - 无法从 Virtual PC 计算机连接到 SQL Server 2008 Express

c# - Windows 窗体与简单控制台应用程序的区别

c++ - 如何向我的程序添加描述(-> 任务管理器中的描述列)(VS 2008,C++)

c++ - Visual C++ - 将插件 DLL 链接到 EXE?

c# - 为什么我不能引用我的类库?