[Makefile]多文件的通用Makefile
下面是一个糅合多线程和多文件的示例
emc-test.c
#include <stdio.h>
#include <pthread.h>
#include "charge-test.h"
#include "rs485-test.h" pthread_mutex_t mutex;
pthread_cond_t cond; int main()
{
pthread_t thread1, thread2; pthread_mutex_init(&mutex, NULL);
pthread_cond_init(&cond, NULL); pthread_create(&thread1, NULL, (void*)thread1_rs485, NULL);
pthread_create(&thread2, NULL, (void*)thread2_charge, NULL); do{
pthread_cond_signal(&cond);
}while(); sleep();
pthread_exit(); return ;
}
emc-test.h
#ifndef __EMC_TEST_H
#define __EMC_TEST_H #endif
charge-test.c
#include <stdio.h>
#include <pthread.h>
#include "charge-test.h" void *thread2_charge(void *arg)
{ }
charge-test.h
#ifndef __CHARGE_TEST_H
#define __CHARGE_TEST_H void *thread2_charge(void *arg); #endif
rs485-test.c
#include <stdio.h>
#include <pthread.h>
#include "rs485-test.h" void *thread1_rs485(void *arg)
{ }
rs485-test.h
#ifndef __RS485_H
#define __RS485_H void *thread1_rs485(void *arg); #endif
Makefile
CC=gcc #arm-linux-gnueabihf-gcc
CFLAGS=-Wall TARGET=emc-test
SRCS=$(wildcard *.c)
OBJS=$(SRCS:.c=.o)
#$(shell echo $(OBJS) > a.txt) ${TARGET}:${OBJS}
$(CC) $(OBJS) -pthread -o $@ clean:
rm -rf $(TARGET) $(OBJS) *.o *~ %.o:%.c %.h
$(CC) -c $< -o $@
[Makefile]多文件的通用Makefile的更多相关文章
- 【linux】-Makefile简要知识+一个通用Makefile
目录 Makefile Makefile规则与示例 为什么需要Makefile Makefile样式 先介绍Makefile的两个函数 完善Makefile 通用Makefile的使用 通用的Make ...
- Makefile.am文件配置
Makefile.am Makefile.am是一种比Makefile更高层次的编译规则,可以和configure.in文件一起通过调用automake命令,生成Makefile.in文件,再调用./ ...
- Makefile.am文件的实例讲解
Makefile.am是一种比Makefile更高层次的编译规则,可以和configure.in文件一起通过调用automake命令,生成Makefile.in文件,再调用./configure的时候 ...
- Makefile之文件搜索
Makefile之文件搜索 1.Makefile 文件中的"VPATH"变量 如果没有指明这个变量,make只会在当前目录下查找依赖文件和目标文件: 如果定义了这个变量,make会 ...
- Makefile学习与进阶之Makefile.am和$$(M)的意思
(1)makefile 中,出现$$(M) 是什么意思,发现还是看实际的Makefile长知识啊 在makefile中,会经常使用shell命令,也经常见到$var 和 $$var的情况,有什么区别呢 ...
- Linux C编程学习之开发工具3---多文件项目管理、Makefile、一个通用的Makefile
GNU Make简介 大型项目的开发过程中,往往会划分出若干个功能模块,这样可以保证软件的易维护性. 作为项目的组成部分,各个模块不可避免的存在各种联系,如果其中某个模块发生改动,那么其他的模块需要相 ...
- 一个简单的通用Makefile实现
一个简单的通用Makefile实现 Makefile是Linux下程序开发的自动化编译工具,一个好的Makefile应该准确的识别编译目标与源文件的依赖关系,并且有着高效的编译效率,即每次重新ma ...
- 代码片段--Makefile之大型工程项目子目录Makefile的一种通用写法
转载:http://blog.csdn.net/mo_hui123456/article/details/8929615 管理Linux环境下的C/C++大型项目,如果有一个智能的Build Syst ...
- 通用Makefile
本文推荐了一个用于对 C/C++ 程序进行编译和连接以产生可执行程序的通用 Makefile. 在使用 Makefile 之前,只需对它进行一些简单的设置即可:而且一经设置,即使以后对源程序文件有所增 ...
随机推荐
- jQuery使用正则判断是否含有非法字符
if(/[@#\$%\^&\*]+/gi.test($("#user_api_register_form").find("input[name='user_nam ...
- Nginx日志分析利器之GoAccess
1.介绍GoAccess 是一个用来统计 Apache Web 服务器的访问日志的工具,可即时生成统计报表,速度非常快 查看的统计信息有: 统计概况,流量消耗等 访客排名 动态Web请求 静态web请 ...
- Javascript-js实现多线程
原文地址:https://www.cnblogs.com/haodawang/articles/5850822.html 在讲之前,大家都知道js是基于单线程的,而这个线程就是浏览器的js引擎.首先来 ...
- .NET压缩图片保存
需求: 需要将用户后买的图片批量下载打包压缩,并且分不同的文件夹(因:购买了多个用户的图片情况) 文章中用到了一个第三方的类库,Nuget下载 SharpZipLib 目前用的 1.1的版本 效果: ...
- spring3.0.6+hibernate3升级spring4.1.6+hibernate4.3遇到的问题
1.下面这三个包,在hibernate4中已经废弃了,因为都直接用session来进行很好的事务管理 import org.springframework.orm.hibernate3.Hiberna ...
- 把git上的larave项目通过SourceTree安装上再通过composer安装依赖库
1.项目地址克隆 https://gitee.com/fps2tao/laravel5.5-alitaobao.git 通过SourceTree工具下载到本地 2.在命令行方式打开项目地址安装依赖库( ...
- t-sql的一些经验
1.存储过程的3种传回值: 1.以return传回整数 2.以output格式传回参数 3.recordset 2.字符串类型的变量需要初始化后再使用,不然永远是空 DECLARE @FieldsSq ...
- 创建Hive/hbase相关联的表异常
hive> CREATE TABLE hperson(id string, name string,email string) STORED BY 'org.apache.hadoop.hive ...
- jquery data方法获取某个元素上事件
获取某个元素上的事件,jquery的给元素绑定的事件可以用data方法取出来. 通过$(element).data("events")来获取 // 比如给一个button绑定两个c ...
- sed匹配两种重要思想
1,sed匹配两种重要思想 屏蔽思想:遮住不想要的 挑出思想:遮住所有,挑出想要的. 2,实例 屏蔽思想: [root@lanny ~]# sed -n '2p' file.txt |sed -r ' ...