| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 1075 人关注过本帖
标题:[求助]看一下这个多文件操作
只看楼主 加入收藏
linlin
Rank: 1
等 级:新手上路
帖 子:134
专家分:0
注 册:2006-3-14
收藏
 问题点数:0 回复次数:10 
[求助]看一下这个多文件操作
我在第一个文件里写了
struct str
{

void print();
};
文件保存为:str.h;
在第二个文件里写了
#include "str.h"
#include <iostream>
using namespace std;
void str::print()
{
cout<<"hello"<<endl;
}
文件保存为:hello.cpp,并进行了编译
在第三个文件里
#include "str.h"
#include <iostream>
using namespace std;
int main()
{
str s;
s.print();
system("pause");
return 0;
}
编译连接时错误: [Linker error] undefined reference to `str::print()' 为什么会这样呢,我在第二个文件已经定义了print(),
搜索更多相关主题的帖子: str 文件 include print 
2006-04-01 14:29
linlin
Rank: 1
等 级:新手上路
帖 子:134
专家分:0
注 册:2006-3-14
收藏
得分:0 

谁会这道题的,看看吧


woyaochengshuyidianle 我真的什么也不会
2006-04-02 10:33
woodhead
Rank: 3Rank: 3
等 级:新手上路
威 望:9
帖 子:1124
专家分:0
注 册:2005-7-18
收藏
得分:0 

我用dev-c++编译的,建立个空project,加入hello.cpp,和main所在的文件,编译.

makefile什么的我还不会用.

如果hello.cpp文件的内容是str.h的定义文件,把hello.cpp改为str.cpp,管理起来更方便.


2006-04-02 11:23
ElfDN
Rank: 4
等 级:贵宾
威 望:11
帖 子:291
专家分:0
注 册:2005-11-13
收藏
得分:0 

第二个文件和第三个文件放在一起编译应该就能运行了


2006-04-02 11:26
linlin
Rank: 1
等 级:新手上路
帖 子:134
专家分:0
注 册:2006-3-14
收藏
得分:0 
woodhead,谢谢你!

woyaochengshuyidianle 我真的什么也不会
2006-04-02 11:30
linlin
Rank: 1
等 级:新手上路
帖 子:134
专家分:0
注 册:2006-3-14
收藏
得分:0 
以下是引用ElfDN在2006-4-2 11:26:00的发言:

第二个文件和第三个文件放在一起编译应该就能运行了



谢谢
你的意思是说,将两个文件合并成一个文件吗?
我是不想把他们合并的,用woodhead的方法在DEV中可以的。在VC中怎么用呢,谢谢


woyaochengshuyidianle 我真的什么也不会
2006-04-02 11:33
myajax95
Rank: 16Rank: 16Rank: 16Rank: 16
等 级:版主
威 望:30
帖 子:2978
专家分:0
注 册:2006-3-5
收藏
得分:0 

如果用VC的话把所有文件都加到project里面就行了,如果是用cc,gcc之类的把所有的文件都写在makefile就可以了。


http://myajax95./
2006-04-02 12:48
linlin
Rank: 1
等 级:新手上路
帖 子:134
专家分:0
注 册:2006-3-14
收藏
得分:0 
以下是引用everajax在2006-4-2 12:48:00的发言:

如果用VC的话把所有文件都加到project里面就行了,如果是用cc,gcc之类的把所有的文件都写在makefile就可以了。


嘻嘻!我知道怎么用了。
我错在编译第二个文件后,选择了“文件”的下拉彩旦中的“关闭工作区”,导致编译第三个文件时说找不到struct的定义。

还有个问题问: ^_^ ^_^ 怎么用makefile呢,是不是要在dos里运行呢,能说详细点吗?(我有个makefile的例子,但不知道如何用) ^_^ ^_^

woyaochengshuyidianle 我真的什么也不会
2006-04-02 15:49
ailun
Rank: 1
等 级:新手上路
帖 子:5
专家分:0
注 册:2006-4-8
收藏
得分:0 

那在vc++中还是不行啊
Linking...
LIBCD.lib(wincrt0.obj) : error LNK2001: unresolved external symbol _WinMain@16
Debug/hello.exe : fatal error LNK1120: 1 unresolved externals
执行 link.exe 时出错.

hello.exe - 1 error(s), 0 warning(s)
  什么意思啊
怎么改啊

2006-04-08 20:18
303770957
Rank: 11Rank: 11Rank: 11Rank: 11
等 级:小飞侠
威 望:6
帖 子:838
专家分:2125
注 册:2005-9-10
收藏
得分:0 
以下是引用linlin在2006-4-1 14:29:00的发言:
我在第一个文件里写了
struct str
{

void print();
};
文件保存为:str.h;
在第二个文件里写了
#include "str.h"
#include <iostream>
using namespace std;
void str::print()
{
cout<<"hello"<<endl;
}
文件保存为:hello.cpp,并进行了编译//文件名改为:hello.h 别编译
在第三个文件里
#include "str.h"
#include <iostream>
using namespace std;//改为:#include "hello.h"
int main()
{
str s;
s.print();
system("pause");
return 0;
}
编译连接时错误: [Linker error] undefined reference to `str::print()' 为什么会这样呢,我在第二个文件已经定义了print(),

运行结果为:hello


♂ 死后定当长眠,生前何须久睡。♀
2006-04-08 23:52
快速回复:[求助]看一下这个多文件操作
数据加载中...
 
   



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

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