linux下如何编译c++工程项目
2016-11-01 18:36
381 查看
首先,你必须有一个Linux开发环境,这样才能进行C++开发。笔者用的是安装在虚拟机中的Ubuntu
9.04,Ubuntu操作系统是没带C++编译器g++。在连网的情况下,在终端中使用root超级用户权限输入以下命令:
sudo apt-get install g++
并回车即可安装C++编译器g++。
安装完毕,即可开始新建我们的一个C++工程了。下面以一个hello工程为例,简单地介绍如何编译一个 C++工程。
登录Linux系统,打开终端,在当前目录下使用mkdir命令新建一个hello的目录;然后使用cd hello进入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 Linux os!"<<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,即可运行程序。
9.04,Ubuntu操作系统是没带C++编译器g++。在连网的情况下,在终端中使用root超级用户权限输入以下命令:
sudo apt-get install g++
并回车即可安装C++编译器g++。
安装完毕,即可开始新建我们的一个C++工程了。下面以一个hello工程为例,简单地介绍如何编译一个 C++工程。
登录Linux系统,打开终端,在当前目录下使用mkdir命令新建一个hello的目录;然后使用cd hello进入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 Linux os!"<<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,即可运行程序。
相关文章推荐
- linux下如何编译c++工程项目
- linux下如何编译c++工程项目
- linux下如何编译c++工程项目
- 在Linux平台下如何编译一个C++工程
- 在Linux平台下如何编译一个C++工程
- 关于如何在make一个Linux下的C/C++工程时,自动添加版本号、编译日期等信息
- 在Linux平台下如何编译一个C++工程
- linux下C++项目编译时碰到的几个小问题
- 如何在Linux下用C/C++语言操作数据库sqlite3(很不错!设计编译链接等很多问题!)
- 在linux下如何编译C++程序
- 在linux下如何编译C++程序
- linux下cmake编译C++工程之总结篇
- linux的ubuntu上如何编译C和C++代码写的动态库,以及调用执行
- 个人linux下编译c++工程所遇问题汇总
- 如何在Linux下编译Cocos2dx3.11项目(主要是添加源文件喇~)
- 在linux下如何编译C++程序
- 用mingw编译C++工程;程序里面的cout<<"aaa";cmd运行c++程序,aaa内容在控制台不显示,如何将aaa输出到控制台屏幕并将控制台内容写到一个文件中。
- Linux 开源项目的工程整体编译架构的修改(autotools)
- 在linux环境下编译一个c/c++工程
- 在linux环境下编译一个c/c++工程