LNK2001:未解析的外部符号"void __cdecl func1(struct Stru1 *)"
LNK2001: unresolved external symbol "void __cdecl func1(struct Stru1 *)"
让我来编辑这个问题:这些文件是:
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
相关文章:
- MINGW - 正确运行函数所需的 cdecl
- GDB:仅当前一个Break在func2上时,才在func1上Break
- C#:Cdecl-DllExport,参数中有一个指向类实例的指针
- 使用char**的Pinvoke cdecl约定
- C++ 如果 (func1() && func2()),func1 是否必须在 func2 之前调用?
- C# GetFunctionPointerForDelegate cdecl instead of stdcall
- 内联组装 - cdecl 并准备堆栈
- cdecl错误:之前应为初始值设定项
- LNK2001:未解析的外部符号"void __cdecl func1(struct Stru1 *)"
- 默认情况下,是使用cdecl+fastcall约定编译的c++成员函数
- 如果存在,则使用它/检测C++中当前作用域的调用约定(thiscall vs cdecl)
- CDECL 调用约定 引起奇怪的警告 组装 X86
- AccessViolationException 当 PInvoking C++ DLL (cdecl 调用约定问题?)
- 需要 Cdecl 澄清:什么是"array 5?"
- CDecl清理代码在显式链接的DLL