linux的aix下的makefile参考

2023-11-01

一、详解

(1)简单模板makefile:
CC = 
OBJS = 
CFLAGS = 
TARGET = 

all:$(TARGET)

$(TARGET):$(OBJS) 
        $(CC) $(CFLAGS) -o $@ $(OBJS)
.SUFFIXES:.o .h
.SUFFIXES:.cpp .o

.cpp.o:
        $(CC) -c $(CFLAGS) -o $@ $<
clean:
        rm -f $(OBJS) $(TARGET) core *.log
ok:
        ./$(TARGET)
(2)Aix生成可执行文件(包括oracle库)
CC = xlC_r -q64
CFLAGS = -g
OBJS = main.o cdc_sync.o source_data.o target_data.o
TARGET = cdc_sync

LIBS=-I$(ORACLE_HOME)/precomp/public \
     -I$(ORACLE_HOME)/rdbms/demo -I$(ORACLE_HOME)/rdbms/public
PUBFLAGS = -L$(ORACLE_HOME)/lib -L$(ORACLE_HOME)/rdbms/lib -lclntsh -locci


all:$(TARGET)

$(TARGET):$(OBJS)
        $(CC) $(CFLAGS) -o $@ $(OBJS) $(LIBS) $(PUBFLAGS)
.SUFFIXES:.o .h
.SUFFIXES:.cpp .o
.cpp.o:
        $(CC) -c $(CFLAGS) -o $@ $< $(LIBS) $(PUBFLAGS)

ok:
        ./$(TARGET)
clean:
        rm -rf $(TARGET) $(OBJS) core *.log
(3)Aix生成动态库
CC = xlc_r
PUBFLAGS = -qthreaded -DAIX -DAIX64 -q64 -bhalt:5 -qstaticinline -qrtti=all -lclntsh -lpthread -lm -lc -lnsl -lrt -ldl

CFLAGS = -I./
OBJS = mario.o mario_akg.o mario_conn.o mario_log.o mario_network.o mario_util.o
TARGET= libmario_tcp.so

SOFLAGS =-G -bM:SRE -bnoentry -qrtti=all -qmkshrobj
all:$(TARGET)

$(TARGET):$(OBJS) 
        $(CC) $(CFLAGS) -o $@ $(OBJS) $(PUBFLAGS) $(SOFLAGS)
.SUFFIXES:.o .h
.SUFFIXES:.c .o

.c.o:
        $(CC) $(PUBFLAGS) -c $(CFLAGS) -o $@ $<
clean:
        rm -f $(OBJS) $(LINK_OBJ) $(TARGET) core *.log
CC = xlc_r
PUBFLAGS = -qthreaded -DAIX -DAIX64 -q64 -bhalt:5 -qstaticinline -qrtti=all -lclntsh -lpthread -lm -lc -lnsl -lrt -ldl

CFLAGS = -I./
OBJS = mario.o mario_akg.o mario_conn.o mario_log.o mario_network.o mario_util.o
TARGET= libmario_tcp.so

SOFLAGS =-G -bM:SRE -bnoentry -qrtti=all -qmkshrobj
all:$(TARGET)

$(TARGET):$(OBJS) 
        $(CC) $(CFLAGS) -o $@ $(OBJS) $(PUBFLAGS) $(SOFLAGS)
.SUFFIXES:.o .h
.SUFFIXES:.c .o

.c.o:
        $(CC) $(PUBFLAGS) -c $(CFLAGS) -o $@ $<
clean:
        rm -f $(OBJS) $(LINK_OBJ) $(TARGET) core *.log
(4)编译当前目录及子目录下所有makefile的shell脚本
#!/usr/bin/sh
CURRENT_DIR=`pwd`
echo "开始编译当前目录下所有源码"
TMP_DIR=`find ./ -name makefile`
for MK_DIR in $TMP_DIR
 do
  DIR_LEN=`expr length "$MK_DIR"`
  let DIR_LEN=DIR_LEN-8
        cd `echo $MK_DIR |cut -c 1-"$DIR_LEN"`
        pwd
        make clean
        make all
        cd $CURRENT_DIR
 done
echo "完成"
(5)包含一个静态库生成的例子(部分)
include ../make_inc/mk_inc.mk
CFLAGS = $(PCLIBFLAGS) 
OBJS=  src/Iconfig.o src/proc_para.o
DEFINED = -D _VERSION=0x10010000  $(PUBDEFINED)
TARGET= libconfigure.so
STALIB= libconfig.a
TESTAPP=test4para
all:$(TARGET) 

test:$(TESTAPP)

libconfigure.so:$(OBJS)
        $(CC) $(CFLAGS) -o $@ $(OBJS) $(PLDFLAGS)  $(SOFLAGS) -L../public/lib -lpublic
        cp -f $(TARGET) ../bin
        rm -f $(TARGET) *.o 
        
libconfig.a:$(OBJS)
        ar $(ARFLAG) $@ $(OBJS)
        cp -f $(STALIB) ./lib        

test4para:test/test4para.o
        $(CC) $(PCFLAGS) -o $@ test/test4para.o $(PLDFLAGS) -Llib -lconfig
        rm test/test4para.o
        
.SUFFIXES:.o .h
.SUFFIXES:.cpp .o

.cpp.o:
        $(CC) $(DEFINED) -c $(CFLAGS) -o $@ $<

clean:
        rm -f $(OBJS) $(LINK_OBJ) $(TARGET) src/Iconfig.o core *.log
(6)其他makefile参考
##################################################
CC=xlC_r -w  armcc 
INCLUDES=-I./include
CFLAGS= $(INCLUDES) -q64  -q32
PLDFLAGS=-l nsl
OBJS=Test7.o call.o
DEBUG_FLAG = -g -D_DEBUG
TARGET= mytest

all:$(TARGET)  
mytest:$(OBJS) 
        $(CC) $(CFLAGS) -o $@ $(OBJS) $(PLDFLAGS)
.SUFFIXES:.o .h
.SUFFIXES:.cpp .o
.cpp.o:
        $(CC) $(DEBUG_FLAG) -c $(CFLAGS) -o $@ $<
clean:
        rm -f $(OBJS) $(TARGET) core *.log
#####################################################
include ../make_inc/mk_inc.mk
CFLAGS = $(PCLIBFLAGS)
LIBS=-L$(TUXDIR)/lib -lwsc -lbuft -lgpnet -lfml -lfml32 -lengine -lpthread -lnsl -lz -lm -lcrypt -lregistry -ldl -w 
OBJS= ServiceOneCard.o one_card.o MsgDeal.o pubFunc.o tux_call.o 
DEFINED = -DSHOW_INFO -DLZY_C_PLUS_PLUS -DPROXY_PART 
TARGET= OneCard.dll
all:$(TARGET)

OneCard.dll:$(OBJS)
        $(CC) $(CFLAGS) $(LIBS) -o $@ $(OBJS)  $(PLDFLAGS)
#############################################################
CC=xlC_r -g
OBJS= my_card.o 

TARGET= my_card
all:$(TARGET)

$(TARGET):$(OBJS)
        $(CC) $(CFLAGS) -o $@ $(OBJS) 
        cp -f $(TARGET) ../bin/plusin
        rm -f $(TARGET) *.o
.SUFFIXES:.o .h
.SUFFIXES:.cpp .o

.cpp.o:
        $(CC) $(DEFINED) -c $(CFLAGS) -o $@ $<
clean:
        rm -f $(OBJS) $(LINK_OBJ) $(TARGET) core *.log
        cp -f $(TARGET) ../bin/plusin
        rm -f $(TARGET) *.o
.SUFFIXES:.o .h
.SUFFIXES:.cpp .o

.cpp.o:
        $(CC) $(DEFINED) -c $(CFLAGS) -o $@ $<
clean:
        rm -f $(OBJS) $(LINK_OBJ) $(TARGET) core *.log
##############################################################
CC=xlC_r -w 
INCLUDES=-I./include
CFLAGS= $(INCLUDES) -q64 
PLDFLAGS=-l nsl
CLOBJS=src/trb_client.o src/trb_rpc_xdr.o src/trb_rpc_clnt.o
SROBJS=src/trb_rpc_svc.o src/trb_rpc_xdr.o
DEBUG_FLAG = -g -D_DEBUG
CLIENT= trb_client
SERVER= trb_server

all:$(SERVER) $(CLIENT)
                
        
trb_client:$(CLOBJS) 
        $(CC) $(CFLAGS) -o $@ $(CLOBJS) $(PLDFLAGS)
trb_server:$(SROBJS) 
        $(CC) $(CFLAGS) -o $@ $(SROBJS) $(PLDFLAGS)
.SUFFIXES:.o .h
.SUFFIXES:.cpp .o
.cpp.o:
        $(CC) $(DEBUG_FLAG) -c $(CFLAGS) -o $@ $<
clean:
        rm -f $(CLOBJS) $(SROBJS) $(TARGET) core *.log
#####################################################
##生成my_card.dll无头文件
include ./make_inc/mk_inc.mk
CFLAGS = $(PCLIBFLAGS)
LIBS=-L$(TUXDIR)/lib -lwsc -lbuft -lgpnet -lfml -lfml32 -lengine -lpthread -lnsl -lz -lm -lcrypt -lregistry -ldl -w 
OBJS= my_card.o
DEFINED = -DSHOW_INFO -DLZY_C_PLUS_PLUS -DPROXY_PART 
TARGET= my_card.dll
all:$(TARGET)

my_card.dll:$(OBJS)
        $(CC) $(CFLAGS) $(LIBS) -o $@ $(OBJS)  $(PLDFLAGS)
        cp -f $(TARGET) ../bin/plusin
        rm -f $(TARGET) *.o
.SUFFIXES:.o .h
.SUFFIXES:.cpp .o

.cpp.o:
        $(CC) $(DEFINED) -c $(CFLAGS) -o $@ $<
clean:
        rm -f $(OBJS) $(LINK_OBJ) $(TARGET) core *.log
##################################################################
CC=xlC_r -g 
OBJS=pthreadT.o
TARGET=pThreadT

all:$(TARGET)

$(TARGET):$(OBJS)
        $(CC) -o $@ $(OBJS)
.SUFFIXES:.o .h
.SUFFIXES:.cpp .o

.cpp.o:
        $(CC) -o $@ -c $<

.PHONY : clean
clean:
        rm -f $(TARGET) $(OBJS) core
#############################################################################
OBJECT=thread.cpp
EXEC=thread
cc=xlC_r
buid:
        $(cc) -g -o $(EXEC) $(OBJECT)
clean:
        -rm -f $(EXEC)
(7)makefile的通配符测试
src = $(wildcard *.cpp ./sub/*.cpp)
dir = $(notdir $(src))
obj = $(patsubst %.cpp, %.o, $(dir))
all:
        @echo $(src)
        @echo $(dir)
        @echo $(obj)
(2)Makefile的详细内容可以参看GNU Make使用手册等其他的文档,还有很多的细节值得学习。
(3)若有建议,请留言,在此先感谢!
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

linux的aix下的makefile参考 的相关文章

  • MybatisPlus自定义sql多表关联分页条件查询

    MybatisPlus自定义sql多表关联分页条件查询 mp封装了crud但是对应复杂sql还是需要自己定义 网上对于多表分页查询的mp描述不是很清楚 我在这里重新写一篇文章 1 数据库准备 需要实现的sql是两表关联条件查询 select
  • MeterSphere 至善篇

    简介 MeterSphere 是一站式开源持续测试平台 涵盖测试跟踪 接口测试 UI 测试和性能测试等功能 全面兼容 JMeter Selenium 等主流开源标准 有效助力开发和测试团队充分利用云弹性进行高度可扩展的自动化测试 加速高质量
  • 自动适配手机网页 适配手机的网站网页 网页自动适配

    自动适配手机网页 适配手机的网站网页 网页自动适配 Category xy309 Time 2012 11 21 8 54 26 点击 14次 Source 兴移 允许网页宽度自动调整 自适应网页设计 到底是怎么做到的 其实并不难 首先 在
  • (面试题)如何解决MySQL慢查询

    慢查询出现原因以及解决方法 扫描多余的数据 避免使用select from xxx 跨多表扫描数据 可以减少join 并适当反范式化 增加冗余数据 以空间换时间 索引没有建立 索引优化不当 或未应用到最佳索引 联合索引使用最左匹配 CREA
  • 【无标题】UE5从百度盘下载UEC++项目到本地所遇到的一些问题和解决方法

    从百度盘里下载UEC 项目到自己的电脑 如果直接用VS打开C 会报打不开源文件等错误 如下图所示 解决方法 删除 图中用红线框的文件夹 若是VS 版本不同也可以把 sln 文件删除 删除后再生成c 项目 若是打开VS 编译是出现以下弹窗 则
  • 一级指针

    一级指针是一种指针 它指向一块内存地址 这块内存中存储的是另一个变量的内存地址 使用一级指针 你可以间接访问到这个变量 在 C C 中 可以使用一级指针来动态分配内存 改变函数参数的值 或者通过指针传递数组 下面是一个使用一级指针的例子 i
  • Java基础 时间相关类小结[Timestamp,Date,Calendar]

    Java基础 时间相关类 Timestamp Date Calendar 前言 一 Timestamp 时间戳 二 Date 日期 三 Calendar 日历 四 Timestamp Date Calendar的转换 五 日期之间的比较 前
  • 计算机组成原理学习笔记——六、总线

    文章目录 计算机组成原理学习笔记 六 CPU总线 6 1 总线概述 6 2 总线仲裁 6 3 总线操作和定时 6 4 总线标准 小结 计算机组成原理学习笔记 六 CPU总线 6 1 总线概述 总线的猝发传送方式 一个总线周期内传输存储地址连
  • iOS架构师_架构模式(代理,block,通知,MVC,MVP,MVVM)

    1 什么是架构 没有明确的定义 属于设计的一方面 没明确的把设计和架构进行区分 它可以小到类与类之间的交互 大到不同模块之间 以及不同业务之间的交互 都可以从架构的层面去理解它 所有架构和设计模式的目的都是为了解耦合 2 基本的架构基础 案
  • windows上通过cmake-gui生成pytorch工程

    在Windows下通过cmake gui exe生成不带cuda的Torch sln工程操作步骤 PyTorch版本使用1 8 1 首先可以先通过打开cmake gui exe 指定pytorch源代码目录和生成vs2017工程的位置 然后
  • 跨库的触发器

    CREATE TRIGGER addtomsgdown ON dbo TABLE1 FOR INSERTASdeclare usernumber as varchar 11 declare messagecontent as varchar
  • Figma 常用功能及快捷键

    Figma 常用功能及快捷键 参考视频 https www bilibili com video BV1Da4y177ks t 27 Figma 快捷键 https figmacn com resource all figma shortc
  • C语言 自己的杂记,随便写的,备忘用

    C语言的主函数声明 int main int argc char argv 或者 int main void 指针 int foo 并不是生命一个名为 foo的变量 变量是foo foo的类型是 指向int的指针 int foo bar 并
  • 4、、多变量线性回归(Linear Regression with Multiple Variables)

    4 1 多维特征 目前为止 我们探讨了单变量 特征的回归模型 现在我们对房价模型增加更多的特征 例如房间数楼层等 构成一个含有多个变量的模型 模型中的特征为 x1 x2 xn 增添更多特征后 我们引入一系列新的注释 n 代表特征的数量 x
  • 第二十六章 登录检验解决⽅案 JWT

    单机tomcat应 登录检验 sesssion保存在浏览器和应 服务器会话之间 户登录成功 服务端会保存 个session 当然客户端有 个sessionId 客户端会把sessionId保存在cookie中 每次请求都会携带这个sessi
  • ctfshow web224 sql_文件上传产生sql注入 详解

    sql 文件上传产生sql注入 首先是扫描 或者 直觉检查 有个robots txt 访问这个页面 发现可以重置密码 重置后admin登录 是个文件上传 测试下来不是文件上传的漏洞 题目也是提示的sql 我这里建了个bmp的文件可以成功上传
  • API接口及apipost,postman的基本使用

    一 简介 接口是 前后端通信的桥梁 被称为 API接口 这里的接口指的是数据接口 一个接口就是 服务中的一个路由规则 根据请求响应结果 给客户端返回结果时 一般是JSON格式的 接口的作用 实现前后端通信 一般接口由一下几个部分组成 请求方
  • Shiro使用redis作为缓存(解决shiro频繁访问Redis)(十一)

    原文地址 转载请注明出处 https blog csdn net qq 34021712 article details 80791219 王赛超 之前写过一篇博客 使用的一个开源项目 实现了redis作为缓存 缓存用户的权限 和 sess

随机推荐

  • 一份完整的HTML模板文件、HTML中容易被忽略的基础知识点

  • Apache HBase API及备份与还原

    一 Apache HBase API Apache HBase也适用于多个外部API 有关更多信息 请参阅Apache HBase外部API 将在下一节的内容中介绍 有关使用本机HBase API的信息 请参阅User API Refere
  • Java 日期时间类的简单介绍及运用

    Date类 1 简介 java util Date类 表示特定的瞬间 精确到毫秒 构造方法 public Date 分配Date对象并初始化此对象 以表示分配它的时间 精确到毫秒 public Date long date 分配Date对象
  • 【Unity】URP渲染管线下代码获取相机的Volume Mask属性

    步骤 1 引用URP的命名空间 2 获取摄像机 3 通过URP扩展获取Volume Mask属性 附 层级的相关代码 Reference 1 引用URP的命名空间 using UnityEngine Rendering Universal
  • SVN的备份与还原

    文章目录 操作环境及相关指令 操作环境 相关指令 防火墙相关指令 端口号相关指令 SVN相关指令 文件传输 备份与还原 备份 SVN相关配置信息 SVN软件安装 还原 访问 SVN地址重定向 操作环境及相关指令 操作环境 操作系统 root
  • SPI技术-JDK实现

    SPI是什么 SPI全称Service Provider Interface 是Java提供的一套用来被第三方实现或者扩展的API 它可以用来启用框架扩展和替换组件 Java SPI 实际上是 基于接口的编程 策略模式 配置文件 组合实现的
  • OpenSSL创建生成CA证书、服务器、客户端证书及密钥

    使用OpenSSL创建生成CA证书 服务器 客户端证书及密钥 目录 使用OpenSSL创建生成CA证书 服务器 客户端证书及密钥 一 生成CA证书 二 生成服务器证书 三 生成客户端证书 四 测试 本片博客对对应资源下载 免积分 https
  • js轮播图的制作详细过程

    JS轮播图 1 在body里面写简单的HTML代码 首先在顶部head标签里引入外部CSS和JS 注意要引入JQuery库 并且放在所写的js上面 不然不会有效果 然后在一个div中包裹两个url 第一个用于显示图片 第二个用于定义页码 代
  • 数据结构——>栈

    栈 栈的介绍 栈的应用场景 栈的代码实现 实现栈的思路分析 入栈 出栈 遍历栈 栈的介绍 1 栈是一个先入后出的有序列表 想象成弹夹 2 变化的一端为栈顶 固定的一端为栈底 3 入栈演示图 4 出栈演示图 栈的应用场景 1 递归 2 四则运
  • Linux系统ioctl使用示例 ioctl实验

    本文是我在andoid实验的ioctl的功能 如双向传递参数 贴出来希望对学习ioctl的人很有帮助 linux的ioctl功能是很强大的 android显示模块还有camera模块都离不开ioctl让上层和内核交互 这个实验对初学者很有帮
  • malloc 背后的虚拟内存 和 malloc实现原理

    面试的时候经常会被问到 malloc 的实现 从操作系统层面来说 malloc 确实是考察面试者对操作系统底层的存储管理理解的一个很好的方式 涉及到虚拟内存 分页 分段等 下面逐个细说 1 虚拟内存 首先需要知道的是程序运行起来的话需要被加
  • 多态的作用

    对象的上转型对象体现了多态 多态的作用 将不同的子类对象统一看做父类 屏蔽了不同子类之间的差异 有子类到父类 有特殊到一般 是程序变得通用 public class TestPloy public sataic void main Stri
  • flink连接kafka报:org.apache.kafka.common.errors.TimeoutException

    测试flink1 12 7 连接kafka package org test flink import org apache flink api common serialization SimpleStringSchema import
  • 用chatgpt超级写手批量制作抖音带货文案并直接SEO霸屏

    带货文案怎么写 最好的解决方案就是学习同行 简版流程 通过抖音热点宝 手机端 的种草视频 或者抖音筛选出最多点赞 半年内的带货视频 提取出带货文案 然后用chatgpt直接改写一下带货文案 也可以根据抖音商城的爆款商品 提炼出卖点 然后利用
  • HTML5-表单

    HTML5 表单 一 Form 1 action 属性 action 属性用于指定表单提交时向何处发送表单数据 即需要发送的服务器地址
  • linux bash如何判断脚本命令参数是否存在

    linux bash处理较简单的参数 如 test sh 10 而很少使用 test n 10这种带选项的方式 典型用法为 bin bash if x 1 x then 有参数 else then 没有参数 fi 为什么要使用 x 1 x
  • MII接口及应用

    MII是英文Medium Independent Interface的缩写 翻译成中文是 介质独立接口 该接口一般应用于以太网硬件平台的MAC层和PHY层之间 MII接口的类型有很多 常用的有MII RMII SMII SSMII SSSM
  • sink 写入本地文件(八)

    sink 写入本地文件 2 4 Sink 2 4 1 将数据写入文件 File Sink 2 4 Sink Flink 没有类似于spark中 foreach 方法 让用户进行迭代的操作 虽有对外的输出操作都要利用Sink完成 最后通过类似
  • 软件工程 第一次随堂练习

    以下答案是经过人工智能生成 个人理解得出的答案 若有不同见解 请在评论区留言或私信 说明下列需求分别属于下面的哪种类型 为什么 A 业务需求 B 用户需求 C 系统级 功能 需求 D 性能需求 E 质量需求 F 约束 G 对外接口 H 数据
  • linux的aix下的makefile参考

    一 详解 1 简单模板makefile CC OBJS CFLAGS TARGET all TARGET TARGET OBJS CC CFLAGS o OBJS SUFFIXES o h SUFFIXES cpp o cpp o CC c