void fun();
//myfile.cpp
void fun()
{
}
//myfile1.h
#include "myfile.h"
void funcc();
//myfile1.cpp
void funcc()
{
void fun();
}
在编译后显示unresolved external symbol void fun()函数。#include "myfile.h"必须在myfile1.h中,因为还有别的要定义。
请问这是哪里出了问题?
6 个解决方案
#1
在myfile1.h中包含myfile.h
#2
是使用头文件的函数,不是cpp。
#3
是使用头文件的函数,不是cpp。
#4
这是链接的时候出的问题。
两个 cpp 是分别编译的,然后分别生成两个目标文件(object file, .obj 或 .o )。在链接的时候,必须将两个目标文件同时作为输入才行,因为 main 函数和 func 函数是分别在两个不同的文件中定义的。
你的问题在于链接是只指定了 myfile1.cpp (myfile1.obj 或 myfile1.o ),但是没有链接 myfile.cpp (myfile.obj 或 myfile.o )
两个 cpp 是分别编译的,然后分别生成两个目标文件(object file, .obj 或 .o )。在链接的时候,必须将两个目标文件同时作为输入才行,因为 main 函数和 func 函数是分别在两个不同的文件中定义的。
你的问题在于链接是只指定了 myfile1.cpp (myfile1.obj 或 myfile1.o ),但是没有链接 myfile.cpp (myfile.obj 或 myfile.o )
#5
那该怎么解决吗?非常谢谢!
#6
我已解决,在工程中没有添加myfile.cpp。
#1
在myfile1.h中包含myfile.h
#2
是使用头文件的函数,不是cpp。
#3
是使用头文件的函数,不是cpp。
#4
这是链接的时候出的问题。
两个 cpp 是分别编译的,然后分别生成两个目标文件(object file, .obj 或 .o )。在链接的时候,必须将两个目标文件同时作为输入才行,因为 main 函数和 func 函数是分别在两个不同的文件中定义的。
你的问题在于链接是只指定了 myfile1.cpp (myfile1.obj 或 myfile1.o ),但是没有链接 myfile.cpp (myfile.obj 或 myfile.o )
两个 cpp 是分别编译的,然后分别生成两个目标文件(object file, .obj 或 .o )。在链接的时候,必须将两个目标文件同时作为输入才行,因为 main 函数和 func 函数是分别在两个不同的文件中定义的。
你的问题在于链接是只指定了 myfile1.cpp (myfile1.obj 或 myfile1.o ),但是没有链接 myfile.cpp (myfile.obj 或 myfile.o )
#5
那该怎么解决吗?非常谢谢!
#6
我已解决,在工程中没有添加myfile.cpp。