在C++中一个Cpp文件要引用另一个cpp文件中的函数

时间:2022-03-26 20:13:51
//myfile.h
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 )

#5



引用 4 楼 fefe82 的回复:
这是链接的时候出的问题。

两个 cpp 是分别编译的,然后分别生成两个目标文件(object file,  .obj 或 .o )。在链接的时候,必须将两个目标文件同时作为输入才行,因为 main 函数和 func 函数是分别在两个不同的文件中定义的。

你的问题在于链接是只指定了 myfile1.cpp (myfile1.obj 或 myfile1.o ),但是没有链接 myfile.cpp (myfile.obj 或 myfile.o )


那该怎么解决吗?非常谢谢!

#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 )

#5



引用 4 楼 fefe82 的回复:
这是链接的时候出的问题。

两个 cpp 是分别编译的,然后分别生成两个目标文件(object file,  .obj 或 .o )。在链接的时候,必须将两个目标文件同时作为输入才行,因为 main 函数和 func 函数是分别在两个不同的文件中定义的。

你的问题在于链接是只指定了 myfile1.cpp (myfile1.obj 或 myfile1.o ),但是没有链接 myfile.cpp (myfile.obj 或 myfile.o )


那该怎么解决吗?非常谢谢!

#6


我已解决,在工程中没有添加myfile.cpp。