gpt4 book ai didi

c++ - Unresolved external symbol 错误,即使函数已定义并由 IDE 看到

转载 作者:太空宇宙 更新时间:2023-11-04 13:38:09 25 4
gpt4 key购买 nike

使用 Visual C++ 2008,我有一个“未解析的外部符号”,即使使用 IDE 我可以正确地看到函数的声明和定义:

错误:

hook_file.obj : error LNK2001: unresolved external symbol "int __cdecl is_directory_objattr(struct _OBJECT_ATTRIBUTES const *)" (?is_directory_objattr@@YAHPBU_OBJECT_ATTRIBUTES@@@Z)

hook_file.cpp中的相关代码:

    #include "misc.h"

void handle_new_file(HANDLE file_handle, const OBJECT_ATTRIBUTES *obj)
{
if(is_directory_objattr(obj) == 0 ) {
// etc.

misc.h 文件中的声明:

BOOL is_directory_objattr(const OBJECT_ATTRIBUTES *obj);

misc.cpp文件中的定义:

#include "misc.h"

BOOL is_directory_objattr(const OBJECT_ATTRIBUTES *obj)
{ //function body here }

我真的不明白链接器在这里提示什么。

  • 带有函数声明的头文件包含在文件中调用函数。
  • 带有函数定义的cpp文件包含带有声明的头文件。
  • 声明和定义相同。
  • 所有文件都列在项目文件中。

知道哪里出了问题吗?

谢谢!

最佳答案

你的头文件只包含一次吗?

在 misc.h 中

#ifndef MISC
#define MISC

...

#endif MISC ?

关于c++ - Unresolved external symbol 错误,即使函数已定义并由 IDE 看到,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28840043/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com