LNK2001:未解析的外部符号"void __cdecl func1(struct Stru1 *)"

LNK2001: unresolved external symbol "void __cdecl func1(struct Stru1 *)"

本文关键字:func1 cdecl struct Stru1 void 外部 LNK2001 符号      更新时间:2023-10-16

让我来编辑这个问题:这些文件是:

file1.h
file1.c
file3.h
file2.h
file2.c
file4.h
file5.h
main_code.cpp

file1.h

#include "file3.h"
typedef struct{} Str1;
void func1(Str1 *str1);
void func2(Str1 *str1);

file1.c

#include "file3.h"
#include "file1.h"
#include "file2.h"
#include <stdio.h>
#include <math.h>
void func1(Str1 *str1){}
void func2(Str1 *str1){}

file2.h

#include "file3.h"
#include "file1.h"

file2.c

#include "file3.h"
#include "file1.h"
#include "file2.h"
#include <stdio.h>
#include <math.h>

file3.h

Doesnt include others.

file4.h

#include "file1.h"
#include "file2.h"
#include "file5.h"

file5.h

#include "file3.h"

main_code.cpp

#include "file1.h"
#include "file2.h"
#include "file4.h"
#include "file5.h"
func1(variable)
func2(variable)

错误"LNK2001:未解析的外部符号"发生在func1和func2上,所以我没有放置其他函数。我已经试过把包括在"外部C",但没有工作。如果我添加到main_code。cpp

  #include "file1.c"

您很可能忘记将file1.c添加到项目中进行构建。

下面是你不应该在c++中做的事情:

#include "file1.h"
#include "file2.h"  
    func1(variable);
    func2(variable);
 #include "file1.c"
#include "file2.c" 

这些#include "file1.c"/#include "file2.c",是你的项目是什么-你添加新的文件在IDE