我有一个包含两个项目的解决方案: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/