一个简单的makefile文件:可以编译指定目录下的所有c和cpp文件,暂未加入自动头文件的依赖。

#!/bin/bash

#编译器
CROSS_COMPILING_PATH =
#源文件路径
VPATH += ./
#库文件路径
LIB_PATH = -L ./ #CFLAG 头文件路径
CFLAG = -I./

#链接的库
CFLAG += -lpthread
CFLAG += -lrt CC = $(CROSS_COMPILING_PATH)gcc
CXX = $(CROSS_COMPILING_PATH)g++
#目标文件
TARGET = Node
RM = rm
SOURCES := $(foreach dir,$(VPATH),$(wildcard $(dir)/*))
SRCS = $(filter %.c,$(SOURCES))
CPP_SRCS = $(filter %.cpp,$(SOURCES)) C_OBJS = $(SRCS:%.c=%.o)
CPP_OBJS = $(CPP_SRCS:%.cpp=%.o)
OBJS = $(C_OBJS) $(CPP_OBJS) $(TARGET):$(OBJS)
$(CXX) $^ $(CFLAG) $(LIB) $(LIB_PATH) -o $@ $(C_OBJS):%.o:%.c
$(CC) -c $(CFLAG) $< -o $@ $(CPP_OBJS):%.o:%.cpp
$(CXX) -c $(CFLAG) $< -o $@ clean:
-$(RM) $(OBJS)
-$(RM) $(TARGET)

  

一个简单的makefile文件的更多相关文章

  1. 一个简单的makefile文件编写

    下午闲来无聊,就打开很久没动过的linux系统想熟悉熟悉在linux上面编译代码,结果一个makefile文件搞到晚上才搞定,哈哈! 先把代码简单贴上来,就写了一个冒泡排序: sort.h: #ifn ...

  2. 编写一个通用的Makefile文件

    1.1在这之前,我们需要了解程序的编译过程 a.预处理:检查语法错误,展开宏,包含头文件等 b.编译:*.c-->*.S c.汇编:*.S-->*.o d.链接:.o +库文件=*.exe ...

  3. 一个简单的Makefile的编写【用自己的话,解释清楚这些】

    用自己的话,解释清楚这些~ Makefile是程序员编写出来指导编译器编译程序源码为目标文件(可执行文件,或链接库) 这里只写一个简单的Makefile 作为例子 其需求如下: frank@ubunt ...

  4. GNU Make 学习系列一:怎样写一个简单的Makefile

    编程通常遵循一个相当简单的程序:编辑源文件,编译源代码成可执行的格式,调试结果.尽管将源代码翻译成可执行程序是常规的过程,如果做的不正确,程序员可能会浪费大量的时间去追踪问题.大多数的开发者都经历过这 ...

  5. ubuntu14.04 配置g++工具,并运行一个简单的c++文件

    首先,对Ubuntu 14.04 LTS进行源更新,摘自下述链接: http://chenrongya.blog.163.com/blog/static/8747419620143185103297/ ...

  6. Makefile第一讲:一个简单的Makefile

    摘要 假定你对linux已经比较的熟悉,假定你编程已经稍有经验,本文不会对文章作出太多基础性解释,看不懂莫怪,只当作给学习的朋友一个引导思路,我也是一个初学者,边学边写,将学会的教给大家,文章有错误之 ...

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

    一.须要用到的hw.cpp hw.h funtest.cpp funtest.h makefile 几个測试文件 1.hw.cpp代码例如以下: #include "hw.h" # ...

  8. VS2017生成一个简单的DLL文件 和 LIB文件——C语言

    下面我们将用两种不同的姿势来用VS2017生成dll文件(动态库文件)和lib文件(静态库文件),这里以C语言为例,用最简单的例子,来让读者了解如何生成dll文件(动态库文件) 生成动态库文件 姿势一 ...

  9. 使用go写一个简单的exe文件

    工作需要一个小工具给分析师用,原先打算写一个脚本的,但是呢我又不会用python,要写的话只能用java来实现(打包成可执行jar,使用java -jar 的命令来执行,当然得安装jdk).这种命令行 ...

随机推荐

  1. SWUST OJ(957)

    逆置单链表 #include <stdio.h> #include <stdlib.h> typedef struct LNode { char data; struct LN ...

  2. BOM&DOM

    BOM(浏览器对象模型) 1. location相关 . location.href 获取当前url . location.href="http://www.sogo.com" 跳 ...

  3. CopyOnWriteArrayList&Collections.synchronizedList()

    1.ArrayList ArrayList是非线性安全,此类的 iterator() 和 listIterator() 方法返回的迭代器是快速失败的:在创建迭代器之后,除非通过迭代器自身的 remov ...

  4. CentOS 使用yum命令安装出现错误提示”could not retrieve mirrorlist http://mirrorlist.centos.org

    CentOS 使用yum命令安装出现错误提示"could not retrieve mirrorlist http://mirrorlist.centos.org这个错误, 在网上找了好多, ...

  5. ActiveMQ使用介绍及实例

    上一篇讲了rabbitmq的使用以及demo,activemq的思路也与之有相似的地方. activemq是基于Java实现的.activemq没有rabbitmq那么多的路由规则,其通信方式只有两种 ...

  6. caffe中google protobuf使用问题

    之前caffe中protobuf的版本是3.5.0,可在ternimal下执行:protoc --version 查看当前protobuf版本. 由于另外安装了Tensorflow之后(也有可能是安装 ...

  7. 初见《构建之法》orz……

    作为一个大二的计科狗,还是对软件设计有些懵,尽管之前学习过软件工程,但并没有掌握,突如其来的软件设计实践,让我着实傻眼. 通过消息得知,要学习<构建之法>,就去搜了一下,它是以实践为基础的 ...

  8. <? extends T> <? super T>

    拿前者来说,这其实就是一个指定的泛型,不过这个泛型可以是T及T的任何子类, 如果一个set方法,是把一个泛型对象T赋值给一个泛型T属性,现在这个T变成了<? extends T>,那么se ...

  9. 剑指Offer 58. 对称的二叉树 (二叉树)

    题目描述 请实现一个函数,用来判断一颗二叉树是不是对称的.注意,如果一个二叉树同此二叉树的镜像是同样的,定义其为对称的. 题目地址 https://www.nowcoder.com/practice/ ...

  10. cocos2dx为Sprite添加触摸事件监听器

    1.首先头文件定义事件处理的函数原型 private: bool onTouchBegan(Touch* tTouch,Event* eEvent);//手指按下事件 void onTouchMove ...