回 帖 发 新 帖 刷新版面

主题:VC++ 多文件编译

Visual C++ 6.0

有两个文件main.cpp和fun.cpp
想在main.cpp中调用fun.cpp中的函数
比如下面这样

//main.cpp
#include"fun.cpp"
void main()
{
    fun();
}

//fun.cpp
#include<stdio.h>
void fun()
{
    printf("Hello");
}

我新建了工程并且把两个文件都添加到了工程中
编译可以通过
但是build的时候提示两个错误:
fun.obj : error LNK2005: "void __cdecl fun(void)" (?fun@@YAXXZ) already defined in main.obj
Debug/p.exe : fatal error LNK1169: one or more multiply defined symbols found
Error executing link.exe.

请教正确的编译连接方法应该是怎样操作
麻烦说的详细点,谢谢!

回复列表 (共2个回复)

沙发

把fun.cpp改名成fun.h,然后将其放在工程的“头文件”目录下。

(PS:main.h是放在“源文件”目录下的。)


[img]http://blog.pfan.cn/upfile/200907/200907191602057.jpg[/img]

板凳

一般函数声明在.h文件,实现在.cpp
别的函数要调用的话,只要包含.h文件就行了,以防函数被多次定义

我来回复

您尚未登录,请登录后再回复。点此登录或注册