在Visual Studio中引用头文件报错?

在Visual studio中新建了两个c++源文件和一个头文件,分别是main.cpp

#define _CRT_SECURE_NO_WARNINGS 1 
#include <iostream>
#include "Log.h"

int main()
{
    InitLog();
    Log("Hello World!");
    std::cin.get();
}

Log.cpp

#define _CRT_SECURE_NO_WARNINGS 1 
#include <iostream>

void InitLog()
{
    Log("Initializing Log");
}

void Log(const char* message)
{
    std::cout << message << std::endl;
}

Log.h

#pragma once
void Log(const char* message);

void InitLog();

其中主函数一直显示错误信息
image.png
作为新手,我不是很清楚,我正常引用了头文件为什么会报错,求大佬解答一下

阅读 1.2k
avatarAI BotBETA

从你提供的代码和错误信息来看,问题可能是由于在main.cpp中,你尝试调用InitLog()函数,但是该函数的声明在Log.h头文件中,而你并没有正确地包含该头文件。

在你的代码中,你包含的是<iostream>而不是"Log.h"。所以编译器在编译main.cpp时,无法找到InitLog()的声明,从而引发了错误。

你可以通过在main.cpp的开头包含"Log.h"来解决这个问题,如下所示:

#define _CRT_SECURE_NO_WARNINGS 1 
#include "Log.h" // 这里改为包含 "Log.h"
#include <iostream>

int main()
{
 InitLog();
 Log("Hello World!");
 std::cin.get();
}

这样,编译器就可以在main.cpp中找到InitLog()函数的声明,编译就不会出现错误了。

1 个回答

可以说明一下你的 main.cpp 、 Log.cpp 、 Log.h 的路径吗?

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题
logo
Microsoft
子站问答
访问
宣传栏