| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 3512 人关注过本帖
标题:VC++ 多文件编译
只看楼主 加入收藏
Memorycn
Rank: 1
等 级:新手上路
帖 子:8
专家分:0
注 册:2009-4-23
结帖率:100%
收藏
已结贴  问题点数:10 回复次数:13 
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.

请教正确的编译连接方法应该是怎样操作
麻烦说的详细点,谢谢!
搜索更多相关主题的帖子: 文件 编译 
2009-07-19 01:34
NoSoul
Rank: 9Rank: 9Rank: 9
来 自:沈阳化工大学
等 级:蜘蛛侠
帖 子:283
专家分:1010
注 册:2009-6-6
收藏
得分:10 
先新建一个工程
然后新建一个C/C++ Header File文件(在你的程序里名字叫fun)
然后再新建一个C++ Source File文件(在你的程序里名字叫main)
//main.cpp
#includes<stdio.h>
#include"fun.h"
void main()
{
    fun();
}
//fun.h
#include<stdio.h>
void fun()
{
    printf("Hello");
}
这样就可以实现多文件编译了

我想伸手拉近點,竟觸不到那邊,就欠一點點,但這一點點...卻好遠
2009-07-19 17:08
Memorycn
Rank: 1
等 级:新手上路
帖 子:8
专家分:0
注 册:2009-4-23
收藏
得分:0 
回复 2楼 NoSoul
谢谢
这种方法试过了而且成功了

是不是还可以用extern来实现
那具体要怎么实现
能不能再解释一下
谢谢
2009-07-19 18:02
NoSoul
Rank: 9Rank: 9Rank: 9
来 自:沈阳化工大学
等 级:蜘蛛侠
帖 子:283
专家分:1010
注 册:2009-6-6
收藏
得分:0 
你是说全局变量那种的吧,代码如下:
#include<stdio.h>
void fun()
{
    printf("Hello");
}
void main()
{
    fun();
}

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

我想伸手拉近點,竟觸不到那邊,就欠一點點,但這一點點...卻好遠
2009-07-19 23:01
StarWing83
Rank: 8Rank: 8
来 自:仙女座大星云
等 级:贵宾
威 望:19
帖 子:3951
专家分:748
注 册:2007-11-16
收藏
得分:0 
LZ的代码让我想起我们数构老师的神奇代码……我第一次看见有人SB到包含c/cpp文件……

专心编程………
飞燕算法初级群:3996098
我的Blog
2009-07-20 00:59
vfdff
Rank: 6Rank: 6
等 级:侠之大者
威 望:8
帖 子:2172
专家分:425
注 册:2005-7-15
收藏
得分:0 
回复 5楼 StarWing83
版主你也恶语伤人

~~~~~~~~~~~~~~~好好学习~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
2009-07-20 01:14
StarWing83
Rank: 8Rank: 8
来 自:仙女座大星云
等 级:贵宾
威 望:19
帖 子:3951
专家分:748
注 册:2007-11-16
收藏
得分:0 
回复 6楼 vfdff
请别误会,我说的SB是写代码的人,那不一定是我们数构老师,因为看起来那是我们教材附带光盘里面的代码………………

专心编程………
飞燕算法初级群:3996098
我的Blog
2009-07-20 04:03
wxjeacen
Rank: 7Rank: 7Rank: 7
等 级:禁止访问
帖 子:1291
专家分:628
注 册:2009-3-22
收藏
得分:0 
回复 7楼 StarWing83
我估计你们数据结构老师说不定也会把.cpp文件阔到头文件里面去。

生命不熄,战斗不止.
2009-07-20 09:22
flyue
Rank: 10Rank: 10Rank: 10
来 自:江南西道
等 级:贵宾
威 望:19
帖 子:3465
专家分:1563
注 册:2006-6-20
收藏
得分:0 
// 以下是aa.h文件
#include "bb.c"


天之道,损有余而补不足.人之道则不然,损不足以奉有余.孰能有余以奉天下,唯有道者.
2009-07-20 11:02
StarWing83
Rank: 8Rank: 8
来 自:仙女座大星云
等 级:贵宾
威 望:19
帖 子:3951
专家分:748
注 册:2007-11-16
收藏
得分:0 
以下是引用wxjeacen在2009-7-20 09:22的发言:

我估计你们数据结构老师说不定也会把.cpp文件阔到头文件里面去。

其实如果都是模板的话,也没什么问题的说……

专心编程………
飞燕算法初级群:3996098
我的Blog
2009-07-20 18:30
快速回复:VC++ 多文件编译
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.016793 second(s), 7 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved