c++ - 从引用项目的 .lib 文件中获取 LNK1104 错误

标签 c++ visual-c++ visual-studio-2012

我有一个包含两个项目的解决方案:myProject,一个 DLL 和 myProject_Tester,一个我用来调试 DLL 的 Win32 控制台应用程序。

当我构建解决方案时,我在错误列表中收到此错误消息:

error LNK1104:
cannot open file 'U:\Software Development\c++ projects\myProject\Debug\myProject.lib'
U:\Software Development\c++ projects\myProject\myProject_Tester\LINK    
myProject_Tester

我在 myProject_Tester 中添加了 myProject 作为引用,但是当我编辑 myProject_Tester.cpp 时,我尝试输入 #include "myProjectDLL.h"(myProject 的头文件)包含头文件,myProjectDLL.h 不会出现在 Intellisense 中.

我还在 myProject_Tester 的附加包含目录下添加了 U:\Software Development\c++ projects\myProject\Debug

myProject_Tester 的属性中是否有其他地方需要配置一些东西以将其与 myProject 连接?

编辑:这是我用于 myProjectDLL.h 的头文件:

//myProjectDLL.h

#ifdef MYPROJECT_EXPORTS
#define MYPROJECT_API __declspec(dllexport) 
#else
#define MYPROJECT_API __declspec(dllimport) 
#endif

namespace myProject
{
    class FileOperator
    {
    public:
        static int openDoc(int projectID,int docID);
    };
}

最佳答案

您没有正确设置附加包含目录设置。您的 .h 文件肯定不在 Debug 文件夹中。改成 U:\Software Development\c++ projects\myProject。

在构建“myProject”项目后,请确保 .lib 文件实际存在。如果它丢失,那么您忘记使用 __declspec(dllexport) 来告诉链接器导出您想要提供的函数或类。

并确保项目以正确的顺序构建,“myProject”必须在控制台项目开始构建之前构建。如有必要,在解决方案资源管理器窗口中右键单击控制台项目,单击“项目依赖项”并在对话框中勾选 myProject。

关于c++ - 从引用项目的 .lib 文件中获取 LNK1104 错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19280686/

相关文章:

c++ - "int *a = new int"和 "int *a = new int()"有什么区别?

c++ - 网格在我尝试显示时根本不显示

c++ - 了解哪个 Mac 进程正在加载我的库框架

visual-c++ - 如何计算 C++ 项目中的行数?

jquery - 如何向 Visual Studio 2012 MVC4 项目添加不同的 jquery ui 主题

c++ - Visual Studio 11(测试版)中的强类型枚举类

c++ - 在 (Qt) 应用程序中集成广告的解决方案

c++ - 通过套接字发送结构;服务器和客户端在同一台机器上

c++ - 分发 Visual C++ 运行时库 (MSVCRT)

c# - 如何在 Visual Studio 中从 C# 调用 PowerShell cmdlet