linux中的gcc编译出错,在Linux中利用gcc编译遇到问题

本文介绍了在Linux环境下使用gcc和g++编译器的基本操作方法,包括解决常见编译错误的方式,并通过示例代码详细展示了如何编译简单的C和C++程序。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

评论

# re: 在Linux中利用gcc编译遇到问题

2007-09-23 13:57

志华

哎呀,以后还是要遵循一条原则:知之为知之,不知google之。 后来我去找了一下,这个错误是因为用错了命令所致的,在linux中对C++的应用g++进行编译,顺便贴一下一个博客中的内容

Linux C++ 自学笔记

作者:未知 来源:http://www.51one.net (2005-03-21 13:39:10)

Linux C++ 自学笔记

1、安装系统

这就不用说了吧,我装的是Redhat Linux 7.2,安装过程智能化,价格也不贵(

9CD+500页手册共69RMB),大家也都支持支持正版,还有一些简单命令

ls - 列目录

cd - 进入目录

man - 帮助

gcc - 编译器

2、文本编辑器

开如想用vi,发现不太好用,在图形界面下找了个Advanced Editor,当文件存为.c或

.cpp后,关键字自动以不同颜色显示(呵呵,比windows的帅多了),支持缩格^I,赶

快加入Favorites,菜单位置在KDE menus->Editors->Advanced Editor

3、编译C-“Hello world!”

#include

int main(void)

{

printf("Hello world!\n");

return 0;

}

存盘为Hello.c

在命令行下输入:gcc Hello.c -o hello (要注意大小写哦)

编译时可能有如下警告:

no newline at end of file

在文件最后补一个新行即可

执行文件:./hello

呵呵,Hello world!可爱的字眼就出来了

4、编译C++ -“Hello world!”

#include

int main()

{

cout << "Hello world!\n" << endl;

return 0;

}

编译出错: undefined reference to ''cout''

呀!怎么连cout都不认识,赶快查查,看man怎么说:

man gcc

哦,原来要用g++编译C++程序

g++ Hello.cpp -o hello

5、编译类

有三个文件:Hello.h、Hello.cpp、MyFirst.cpp,内容如下:

file://Hello.h

#ifndef HelloH

#define HelloH

class Hello

{

Hello();

void Display();

}

file://Hello.cpp

#include "Hello.h"

#include

Hello::Hello()

{

}

Hello::Display()

{

cout << "Hello world!\n" << endl;

}

file://MyFirst.cpp

#include

#include "Hello.h"

int main()

{

Hello theHello;

theHello->Display();

return 0;

}

开始编译:g++ MyFirst.cpp -o MyFirst

呀,出错:

undefined reference to ''Hello::Hello(void)''

undefined reference to ''Hello::Display()''

呵,看来是不能链接Hello.cpp出错,先改一下

在MyFirst.cpp中:将#include "Hello.h"改为#include "Hello.cpp"

编译通过,在查查帮助,有参数 -c 可以只编译不链接

呵呵,天黑了,玩把帝国,晚上看看书,明天再接着来。

回复  更多评论

# re: 在Linux中利用gcc编译遇到问题

2007-09-23 21:51

AMXTSHMF

呵呵,需要了解一下gcc编译器,其实g++编译时他会调用gcc,然后链接。  回复  更多评论

# re: 在Linux中利用gcc编译遇到问题

2009-06-14 10:51

老刘

你cout 命名空间都没引用 前面还得加 #include

using namespace std;  回复  更多评论

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值