ubuntu创建C++工程及Makefile
来源:互联网 发布:22周四维彩超正常数据 编辑:程序博客网 时间:2024/06/06 14:04
将一段代码移植到Linux并进行调试
首先,你必须有一个Linux开发环境,这样才能进行C++开发。笔者用的是安装在虚拟机中的Ubuntu 9.04,Ubuntu操作系统是没带C++编译器g++。在连网的情况下,在终端中使用root超级用户权限输入以下命令:
sudo apt-get install g++
并回车即可安装C++编译器g++
创建工程如下:
- 打开终端,在当前目录下使用mkdir命令新建一个example的目录
- 进入example目录下,创建两个目录src和include,分别存放源文件和头文件
- 在example目录下vi编写Makefile,Makefile如下:
TARGET=.
CC=g++
CFLAGS=-g
CFLAGC=-c
MAINC=$(TARGET)/src/windsat_example_usage.cppWINDSAT=$(TARGET)/src/dataset.cpp
WINDSAT_AVERAGED=$(TARGET)/src/windsat_averaged.cpp
OBJ1=dataset.o
OBJ2=windsat_averaged.oINCLUDE = -I$(TARGET)/include
EXEC=$(TARGET)/windsat_example_usage
all:$(EXEC)
$$(EXEC):$(OBJ1) $(OBJ2) $(MAINC)(去掉最前面的$)
[tab] $(CC) $(CFLAGS) $(OBJ1) $(OBJ2) $(MAINC) $(INCLUDE) -o $@
[tab]rm -f $(OBJ1) $(OBJ2)
[tab]@echo “$@ is created successfully!”
$(OBJ2):$(OBJ1) $(WINDSAT_AVERAGED)
[tab]$(CC) $(CFLAGC) $(WINDSAT_AVERAGED) $(INCLUDE) -o $@
$(OBJ1):$(WINDSAT)
[tab]$(CC) $(CFLAGC) $(WINDSAT) $(INCLUDE) -o $@
clean:
[tab]rm -f $(EXEC)
注意: makefile文件中的命令行([tab])一定要以Tab建开头,否则编译通不过。
4. 写好makefile文件后,即可编译工程。在终端中输入make命令,我的Makefile一开始出错,$(OBJ2):$(OBJ1) $(WINDSAT_AVERAGED)
[tab]$(CC) $(CFLAGC) $(WINDSAT_AVERAGED) $(INCLUDE) -o $@
$(OBJ1):$(WINDSAT)
[tab]$(CC) $(CFLAGC) $(WINDSAT) $(INCLUDE) -o $@
我没有加$(INCLUDE) 变量,以至于头文件找不到
5. 在example目录下生成可执行文件,运行./可执行文件。
- ubuntu创建C++工程及Makefile
- 创建makefile工程
- eclipse 创建 makefile 工程
- ubuntu下cocos2d配置及android工程创建
- 工程管理工具make及makefile
- ubuntu C语言 MakeFile
- C实例---Makefile工程管理
- 工程管理之makefile与自动创建makefile文件过程
- 工程管理之makefile与自动创建makefile文件过程
- Ubuntu 16.04 创建cakephp工程
- 简单工程Makefile模版 及资料
- Linux 工程编译调试Makefile及技巧
- 交叉编译工具及 makefile工程管理工具
- 工程管理器及makefile模板的使用
- 常用的C/C++工程Makefile模板
- 常用的C/C++工程Makefile模板
- 常用的C/C++工程Makefile模板
- 常用的C/C++工程Makefile模板
- 欢迎使用CSDN-markdown编辑器
- ubuntu 安装配置snmp
- Docker安装使用及常用命令
- 万万没想到——手机数据原来还可以这样去备份
- Halcon实战记录之二《判断两个直线或者矩形是否相交》
- ubuntu创建C++工程及Makefile
- 机器学习:查准率(Precision)和查全率(Recall)
- vivado bit 烧写到flash
- dicom文件的值类型VR详解
- React Native:Android集成React Native的一些配置
- 连接池(一):数据库连接关闭后为何还能共享?
- 从起始位置开始和从任意位置开始的快速排序
- Java多线程学习(吐血超详细总结 )
- 遇到的Hibernate的三个小坑