当前时区为 UTC + 8 小时



发表新帖 回复这个主题  [ 6 篇帖子 ] 
作者 内容
1 楼 
 文章标题 : 问个很基础的问题
帖子发表于 : 2007-11-02 6:50 

注册: 2007-11-01 8:21
帖子: 3
送出感谢: 0 次
接收感谢: 0 次
写了一个c++的程序,有四个文件, 1.cpp, 2.h, 3.cpp, 4.txt;

main函数放在1.cpp中, 2.h是头文件. 3.cpp定义了main中用到的类和函数, 4.txt是infile中要用到的文件,就是简单的读一行字符串.

在vc2005(windows xp)下能正常的编译执行.

我把他们都copy到ubuntu系统下面

g++ -o blank 1.cpp

提示: undefined reference to ' .... '
看上去应该是在2.h和3.cpp定义的东西没有进来.

我又尝试了

g++ -o blank 1.cpp 2.h 3.cpp

编译成功,有一个warning: no newline at end of file. (文件结尾应该空一行?)

想问的是, 如果编译时候要用到多个文件都要写在参数上啊? 有什么规则吗? 呵呵,多谢啦.



无论是linux还是c++,我都还是个新手,所以大家别见笑哈


页首
 用户资料  
 
2 楼 
 文章标题 :
帖子发表于 : 2007-11-02 6:58 

注册: 2007-11-01 8:21
帖子: 3
送出感谢: 0 次
接收感谢: 0 次
试了一下,确实需要一个新的空白行在文件末尾, 不过, why?


页首
 用户资料  
 
3 楼 
 文章标题 :
帖子发表于 : 2007-11-02 10:53 
头像

注册: 2007-03-13 17:26
帖子: 2254
送出感谢: 0 次
接收感谢: 1
就是一个警告了


页首
 用户资料  
 
4 楼 
 文章标题 : Re: 问个很基础的问题
帖子发表于 : 2007-11-02 11:40 

注册: 2006-03-10 15:10
帖子: 3182
地址: xi'an China
送出感谢: 0 次
接收感谢: 2
newfolder 写道:

编译成功,有一个warning: no newline at end of file. (文件结尾应该空一行?)

想问的是, 如果编译时候要用到多个文件都要写在参数上啊? 有什么规则吗? 呵呵,多谢啦.


论是linux还是c++,我都还是个新手,所以大家别见笑哈


1.应该空一行

2.编译的时候不需要都写上,比如
代码:
g++  -c  1.cpp
g++  -c  3.cpp

但链接的时候当然都需要了(头文件没必要把),所以你编译链接写在一块时肯定需要(头文件不要)

3.多个文件的时候,win下都是建的工程,lin最好用make


页首
 用户资料  
 
5 楼 
 文章标题 :
帖子发表于 : 2007-11-02 12:41 

注册: 2007-03-11 12:29
帖子: 30
送出感谢: 0 次
接收感谢: 0 次
LZ你出现的那个错误是在main函数调用子函数时 找不到相应的函数体 在vc的工程中你把3.cpp包含进去了 ,在g++时你只g++ 1.cpp 你可以 g++ *.cpp 。

我很同意4楼的 说法 在linux下大的工程最好用make


页首
 用户资料  
 
6 楼 
 文章标题 :
帖子发表于 : 2007-11-05 11:07 

注册: 2007-11-01 8:21
帖子: 3
送出感谢: 0 次
接收感谢: 0 次
谢谢楼上, 让我先去研究研究make呵呵. thx a lot~


页首
 用户资料  
 
显示帖子 :  排序  
发表新帖 回复这个主题  [ 6 篇帖子 ] 

当前时区为 UTC + 8 小时


在线用户

正在浏览此版面的用户:没有注册用户 和 2 位游客


不能 在这个版面发表主题
不能 在这个版面回复主题
不能 在这个版面编辑帖子
不能 在这个版面删除帖子
不能 在这个版面提交附件

前往 :  
本站点为公益性站点,用于推广开源自由软件,由 DiaHosting VPSBudgetVM VPS 提供服务。
我们认为:软件应可免费取得,软件工具在各种语言环境下皆可使用,且不会有任何功能上的差异;
人们应有定制和修改软件的自由,且方式不受限制,只要他们自认为合适。

Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group
简体中文语系由 王笑宇 翻译