简单编写makefile文件,实现GCC4.9编译项目,加入boost库测试等等。。

一、需要用到的hw.cpp hw.h funtest.cpp funtest.h makefile 几个测试文件

1、hw.cpp代码如下:

#include "hw.h"
#include "funtest.h"
using namespace std;
using namespace boost;
int main()
{
  timer t;
   {
     int i=1;
   }
   auto i="abc";
   cout<<i<<endl;
   cout<<"endl"<<endl;
   cout<<"abcdefj"<<endl;
   cout << "最大处理时间:" << t.elapsed_max() / 3600 << " h" << endl;
   cout << "最小处理时间:" << t.elapsed_min() << " s" << endl;
   cout << "逝去时间:" << t.elapsed() << " s" << endl;
   cout<<"每行需要一个tab键"<<endl;
   funtest::testa test1;
   test1.testafun();
}

2、hw.h代码如下:

#ifndef __HW_H__
#define __HW_H__
#include <iostream>
#include <boost/timer.hpp>
#include <boost/progress.hpp>

#endif

3、funtest.cpp代码如下:

#include "funtest.h"

using namespace std;

namespace funtest
{
testa::testa()
{
  cout<<"testa()"<<endl;
}

testa::~testa()
{
  cout<<"~testa()"<<endl;
}

void testa::testafun()
{
   cout<<"testa::testafun()"<<endl;
}
}

4、funtest.h代码如下:

#ifndef __FUNTEST__H__
#define __FUNTEST__H__
#include <iostream>
namespace funtest
{
    class testa
        {
          public:
          testa();
          ~testa();
          void testafun();
        };
}

#endif

二、makefile的编写以及使用示例

1、makefile代码如下:

#----------------------------------------------------------
#makefile helloworld测试用例
#
#
#
#
#-----------------------------------------------------------
ggg=g++49
exe=helloworld

#所有的.o文件写在这里
obj = hw.o funtest.o

#所要关联的cpp文件写在这里
cpp = hw.cpp funtest.cpp

$(exe):$(obj)
        @echo "链接开始................"
        $(ggg) -o $(exe) $(obj)

hw.o : $(cpp)
        @echo "编译开始................"
        $(ggg) -std=c++11 -c $(cpp)

.PHONY : clean delete
all:
        @echo "开始make all..........."

clean:
        @echo "开始清理................"
        -rm -rf $(obj) $(exe)
delete:
        @echo "delete.................."
        pwd

2、使用方法linux简单示例。

[[email protected] src]$ make clean

开始清理................

rm -rf hw.o funtest.o helloworld

[[email protected] src]$ make

编译开始................

g++49 -std=c++11 -c hw.cpp funtest.cpp

链接开始................

g++49 -o helloworld hw.o funtest.o

[[email protected] src]$ make all

开始make all...........

[[email protected] src]$ make delete

delete..................

pwd

/home/mythcpp/src

3、程序输出示例:

[[email protected] src]$ ./helloworld

abc

endl

abcdefj

最大处理时间:2.56205e+09 h

最小处理时间:1e-06 s

逝去时间:0 s

每行需要一个tab键

testa()

testa::testafun()

~testa()

[[email protected] src]$

三、需要注意的几点

1、g++49是g++4.9版本的g++

命令行示例:

[[email protected] src]$ ll /usr/bin/g++49

lrwxrwxrwx. 1 root root 23 May  8 05:05 /usr/bin/g++49 -> /home/gcc-4.9.0/bin/g++

[[email protected] src]$ type g++49

g++49 is /usr/bin/g++49

2、makefile以tab为间格,不要以空格开始,会报错的。

3、echo 要写在lable下面,如:

$(exe):$(obj)

@echo "链接开始................"

$(ggg) -o $(exe) $(obj)

4、makefile文件中的all clean delete 等等伪标签可以自行实现功能命令。

这里最主要是使用make 和make clean两条命令

5、关于makefile的详细编写请百度,谷歌,此文档只适用入门。



简单编写makefile文件,实现GCC4.9编译项目,加入boost库测试等等。。

时间: 2024-10-16 10:55:16

简单编写makefile文件,实现GCC4.9编译项目,加入boost库测试等等。。的相关文章

简单编写Makefile

相信很多朋友都有过这样的经历,看着开源项目中好几页的makefile文件,不知所云.在日常学习和工作中,也有意无意的去回避makefile,能改就不写,能用ide就用ide.其实makefile并没有想象的那么难写,只要你明白了其中的原理,自己实践几次.你也可以自己写makefile,让别人对你头来羡慕的目光. 下面本人介绍一下自己的学习成果,初学阶段,欢迎大家多多指正.简单的说,makefile定义了一系列的规则来指定,哪些文件需要先编译,哪些文件需要后编译,哪些文件需要重新编译,甚至可以在m

Linux 程序设计学习笔记----动手编写makefile文件

Befroe Beginning. 之前定了暑假的plan ,关于Linux的书籍现在在看的是ALP和Linux高级程序设计(杨宗德)第三版.在计划中的是Linux高级环境编程. 现在开始关于Linux程序设计的第一篇学习笔记. 本来打算把名字写成教程,不过觉得自己完全是新手在自学,还是写学习笔记比较负责和适合. 希望可以一起学习进步. 引入 首先我们假设这样一个场景.我们有一个程序包含了三个文件,分别是源码文件main_plus,c和function_plus.c以及头文件mydefine_p

如何编写makefile文件

最近一直在学习makefile是如何编写的. 当我们写的程序文件比较少的时候,敲入gcc /g++,当你在大型工程中,在一个个编译文件的话,你可能就会很郁闷.linux有一个自带的make命令,它让你的工作省去了很大的力气,但是你要学习如何编写makefile文件. makefile是一种特殊的文件格式,他将会帮你自动管理你的项目,很强大.它是这样工作的: 1.make会在当前目录下找名字叫“Makefile”或“makefile”的文件.    2.如果找到,它会找文件中的第一个目标文件(ta

教会你如何编写makefile文件

最近一直在学习makefile是如何编写的.当我们写的程序文件比较少的时候,敲入gcc /g++,当你在大型工程中,在一个个编译文件的话,你可能就会很郁闷.linux有一个自带的make命令,它让你的工作省去了很大的力气,但是你要学习如何编写makefile文件. makefile是一种特殊的文件格式,他将会帮你自动管理你的项目,很强大. 下面通过实例一步步讲解如何使用makefile.下面的四段代码. //main.cpp #include "functions.h" int mai

单文件夹下的C程序如何编写Makefile文件

通过学习已经学会了GCC的一些基础的命令,以及如何将C语言源代码编译成可执行文件. 我们已经知道在linux环境下编译源码时,常会有以下三个步骤: ./configure make make clean 执行./configure时,会检查系统的配置等,得到相关的有用的信息,生成Makefile文件. 执行make命令时,make命令解释Makefile文件中的规则,生成目标文件. 执行make clean会删除生成目标文件过程中的生成的中间文件. Makefile文件是可以由我们手工建立的:接

TB12 关于编写Makefile文件 错误:遗漏分隔符 。 停止

下面是我编写内核模块 对应的一个makefile文件 —————————————————————————————————————————————————————— 1    ifneq ($(KERNELRELEASE),) 2    obj-m := hello.o calculate.o 3    else45    KDIR := /lib/modules/2.6.18-53.el5/build6    all:7    make -C $(KDIR) M=$(PWD) modules8 

Qt编译和使用boost库(附5.51的Boost下载)good

配置gcc可以在cmd中使用 添加MinGW到环境变量 安装过Qt的都已经默认安装过MinGw的环境了,只需要找到配置一下环境变量就行 我的在D:\Qt5.5.1\Tools\mingw492_32\bin 然后将该路径添加到系统环境变量中 验证是否安装成功 打开cmd,输入一下的内容 gcc -v 如果显示了gcc的版本信息,那么MinGw添加成功,下面就可以在cmd中访问了. 编译boost库 boost库版本介绍 我这里使用的是boost1.56,其他的版本也是一样的 生成b2.exe和b

Clion使用MinGW编译好的boost库

MinGW编译Boost库可以参考我之前写的编译Boost的文章. 以下是cmake链接boost静态库的配置: 1 cmake_minimum_required(VERSION 3.8) 2 3 project(clions) 4 5 set(CMAKE_CXX_STANDARD 14) 6 set(CMAKE_INSTALL_PREFIX ${CMAKE_CURRENT_SOURCE_DIR}/Install CACHE PATH "Install here" FORCE) 7 8

编写简单的Makefile文件

makefile中的编写内容如下: www:hello.c x.h gcc hello.c -o hello clean: rm hello www:hello.c  x.h 表示生成www这个文件需要hello.c 和 x.h这两个文件 rm hello 表示在shell中执行make clean 时会执行rm  hello 即删除hello这个文件