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

时间:2015-09-02 12:27:04

标签: c++ c visual-studio-2013 linker unresolved-external

让我编辑一下这个问题: 文件是:

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)

错误&#34; LNK2001:未解决的外部符号&#34;与func1和func2发生,所以我没有放置其他人的功能。我已经尝试将包含放在&#34; extern C&#34;但没有工作。 如果我添加到main_code.cpp

  #include "file1.c"

然后该程序有效......

1 个答案:

答案 0 :(得分:0)

您很可能忘记将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中添加新文件。