Linux编译C文件
来源:互联网 发布:sql区间查询语句 编辑:程序博客网 时间:2024/04/27 15:39
熟悉了Windows平台下编译一个C++工程后,你是否会提出这样一个问题:在Linux平台下又如何编译一个C++工程呢?
希望本文能给正在学习或想学习Linux C++开发的你起到抛砖引玉的作用。
首先,你必须有一个Linux开发环境,这样才能进行C++开发。笔者用的是安装在虚拟机中的Ubuntu9.04,Ubuntu操作系统是没带C++编译器g++。在连网的情况下,在终端中使用root超级用户权限输入以下命令:
sudo apt-get install g++
并回车即可安装C++编译器g++。
安装完毕,即可开始新建我们的一个C++工程了。下面以一个hello工程为例,简单地介绍如何编译一个 C++工程。
登录Linux系统,打开终端,在当前目录下使用mkdir命令新建一个hello的目录;然后使用cdhello进入hello目录中,并使用vi工具新建hello.h、hello.cpp、main.cpp、makefile四个文件。四个文件的内容分别如下:
1. hello.h文件
#ifndef HELLO_H_
#define HELLO_H_
class Hello {
public:
void print();
};
#endif
2. hello.cpp文件
#include "hello.h"
#include <iostream>
using namespace std;
void Hello::print() {
cout<<"Hello, welcome to Redhat Linuxos!"<<endl;
}
3. main.cpp文件
#include "hello.h"
#include <iostream>
using namespace std;
int main() {
Hello h;
h.print();
return 0;
}
注意:这三个文件要以空白行结束,否则编译时会有警告信息。
4. makefile文件
# this is a makefile of the c++ project hello
# the standard c++ compiler in the Redhat linux is g++
# written by young on June 27th, 2009
TARGET= .
CC= g++
CFLAGS= -g
CFLAGC= -c
MAINC= main.cpp
HELLO= hello.cpp
OBJ= hello.o
INCLUDE= -I$(TARGET)
EXEC = $(TARGET)/main
all: $(EXEC)
$(EXEC): $(OBJ) $(MAINC)
$(CC)$(CFLAGS) $(OBJ) $(MAINC) $(INCLUDE) -o $@
rm -f$(OBJ)
@echo"<<<<<<$@ is created successfully!>>>>>>"
$(OBJ): $(HELLO)
$(CC)$(CFLAGC) $(HELLO) -o $@
clean:
rm -f$(EXEC)
注意:makefile文件中的命令行(红色字体)一定要以Tab建开头,否则编译通不过。
写好makefile文件后,即可编译工程。在终端中输入make命令,回车后将显示如下信息:
g++ -c hello.cpp -o hello.o
g++ -g hello.o main.cpp -I. -o main
rm -f hello.o
<<<<<<main is created successfully!>>>>>>
这些信息说明工程已被正确编译,当前目录下将生成一个main的可执行文件。
同样,你也可以不使用makefile文件,而直接在终端上输入以下两行命令:
g++ -c hello.cpp -o hello.o
g++ -g hello.o main.cpp -I. -o main
也可以编译这个工程。
使用ls -l命令查看当前目录下的所有文件,确实有一个main文件。
在终端中输入./main,即可运行程序。
}
3. main.cpp文件
#include "hello.h"
#include <iostream>
using namespace std;
int main() {
Hello h;
h.print();
return 0;
}
注意:这三个文件要以空白行结束,否则编译时会有警告信息。
4. makefile文件
# this is a makefile of the c++ project hello
# the standard c++ compiler in the Redhat linux is g++
# written by young on June 27th, 2009
TARGET= .
CC= g++
CFLAGS= -g
CFLAGC= -c
MAINC= main.cpp
HELLO= hello.cpp
OBJ= hello.o
INCLUDE= -I$(TARGET)
EXEC = $(TARGET)/main
all: $(EXEC)
$(EXEC): $(OBJ) $(MAINC)
$(CC)$(CFLAGS) $(OBJ) $(MAINC) $(INCLUDE) -o $@
rm -f$(OBJ)
@echo"<<<<<<$@ is created successfully!>>>>>>"
$(OBJ): $(HELLO)
$(CC)$(CFLAGC) $(HELLO) -o $@
clean:
rm -f$(EXEC)
注意:makefile文件中的命令行(红色字体)一定要以Tab建开头,否则编译通不过。
写好makefile文件后,即可编译工程。在终端中输入make命令,回车后将显示如下信息:
g++ -c hello.cpp -o hello.o
g++ -g hello.o main.cpp -I. -o main
rm -f hello.o
<<<<<<main is created successfully!>>>>>>
这些信息说明工程已被正确编译,当前目录下将生成一个main的可执行文件。
同样,你也可以不使用makefile文件,而直接在终端上输入以下两行命令:
g++ -c hello.cpp -o hello.o
g++ -g hello.o main.cpp -I. -o main
也可以编译这个工程。
使用ls -l命令查看当前目录下的所有文件,确实有一个main文件。
在终端中输入./main,即可运行程序。
- Linux编译C文件
- linux 编译.c文件
- Linux C 多文件编译
- linux c .c文件编译 基本语法
- Linux下C文件编译so文件
- linux下 c语言多文件编译
- Linux下编译单个C文件
- linux c 编译和使用库文件
- Linux下面C语言多文件编译
- Linux下编译C文件的过程
- linux下 c语言多文件编译
- Linux下面C语言多文件编译
- Linux下C多文件编译Makefile
- Linux下面C语言多文件编译
- linux makefile 编译c和c++文件
- linux下 c语言多文件编译
- 《求助》linux下编译带有sqlite3的c文件出错
- LINUX 2.6 内核下多C文件模块编译方法
- 利用流迭代器读取文件
- 心学与王守仁
- 常用的一些js方法
- 积分
- static的生命周期,以及使用范围
- Linux编译C文件
- WebChartControl
- 浅谈J2EE开发 之 易用的原则
- Javascript部分函数及使用说明
- 转:J2SE5中的最新注释功能SuppressWarnings
- 监控服务器性能
- 循环配置本地IP批处理命令
- 下载有用的东东,在哪里最方便?
- 关于Linux下tomcat的catalina.out文件过大问题