第一个makefile

本文介绍了一个具体的Makefile配置实例,详细展示了如何通过设置CFLAGS、CC等变量来编译目标文件,并提供了clean命令用于清理编译产生的文件。该实例包括了多个源文件的编译流程,适用于希望深入了解Makefile用法的开发者。

# debug
# CFLAGS = -g -w -c

# release
CFLAGS = -O -w -c

CC = xlC_r

COMPILE = $(CC) $(CFLAGS)

OBJECTS = myapp.o socket.o mylog.o

TARGET = myapp

all: $(TARGET)

$(TARGET): $(OBJECTS)
 $(CC) -o $@ $(OBJECTS)
myapp.o: myapp.c socket.h mylog.h
 $(COMPILE) $<
socket.o: socket.c socket.h mylog.h
 $(COMPILE) $<
mylog.o: mylog.c mylog.h
 $(COMPILE) $<

clean :
 rm -f *.o $(TARGET)

转载于:https://www.cnblogs.com/ruobent/archive/2011/05/18/2050048.html

【电力系统】单机无穷大电力系统短路故障暂态稳定Simulink仿真(带说明文档)内容概要:本文档围绕“单机无穷大电力系统短路故障暂态稳定Simulink仿真”展开,提供了完整的仿真模型与说明文档,重点研究电力系统在发生短路故障后的暂态稳定性问题。通过Simulink搭建单机无穷大系统模型,模拟不同类型的短路故障(如三相短路),分析系统在故障期间及切除后的动态响应,包括发电机转子角度、转速、电压和功率等关键参数的变化,进而评估系统的暂态稳定能力。该仿真有助于理解电力系统稳定性机理,掌握暂态过程分析方法。; 适合人群:电气工程及相关专业的本科生、研究生,以及从事电力系统分析、运行与控制工作的科研人员和工程师。; 使用场景及目标:①学习电力系统暂态稳定的基本概念与分析方法;②掌握利用Simulink进行电力系统建模与仿真的技能;③研究短路故障对系统稳定性的影响及提高稳定性的措施(如故障清除时间优化);④辅助课程设计、毕业设计或科研项目中的系统仿真验证。; 阅读建议:建议结合电力系统稳定性理论知识进行学习,先理解仿真模型各模块的功能与参数设置,再运行仿真并仔细分析输出结果,尝试改变故障类型或系统参数以观察其对稳定性的影响,从而深化对暂态稳定问题的理解。
明白了,你有两个 `Makefile`,它们属于同一个项目: - 第一个 `Makefile`(`tp-miniupnpc`):用于构建 `libminiupnpc.so`; - 第二个 `Makefile`(`libtpsocket`):用于构建 `libtpsocket.so`,并依赖 `libminiupnpc.so`。 你当前的问题是: > 执行第一个 `Makefile`(`tp-miniupnpc`)没有生成 `libminiupnpc.so`,导致第二个 `Makefile` 安装时找不到依赖库。 --- ## ✅ **目标** 我们要修改第一个 `Makefile`(`tp-miniupnpc`),使其能正确编译并生成 `libminiupnpc.so`,并安装到目标系统的 `/usr/lib/` 目录下。 --- ## ✅ **修改后的 `Makefile`(tp-miniupnpc)** ```makefile # # Copyright (c) 2018 TP-Link Systems Inc. # # Author : Jinfu Chen # Version : 1.0 # Date : 18 Mar, 2018 # include $(TOPDIR)/rules.mk PKG_NAME:=miniupnpc PKG_RELEASE:=1 PKG_VERSION:=1.0 PKG_BUILD_DIR:=$(BUILD_DIR)/$(PKG_NAME)-$(PKG_VERSION) include $(INCLUDE_DIR)/package.mk define Package/$(PKG_NAME) SECTION:=TP-Link CATEGORY:=TP-Link iplatform apps MAINTAINER:=Jinfu Chen DEPENDS:=+zlib +libpthread +librt TITLE:=MiniUPnP Client Library endef define Package/$(PKG_NAME)/description libminiupnpc is a lightweight UPnP client library used to manage port mapping. endef define Build/Prepare mkdir -p $(PKG_BUILD_DIR) $(CP) ./src/* $(PKG_BUILD_DIR)/ mkdir -p $(STAGING_DIR)/usr/include/$(PKG_NAME)/ $(CP) ./src/*.h $(STAGING_DIR)/usr/include/$(PKG_NAME)/ endef define Build/Compile $(MAKE) -C $(PKG_BUILD_DIR) \ CC="$(TARGET_CC)" \ CFLAGS="$(TARGET_CFLAGS)" \ LDFLAGS="$(TARGET_LDFLAGS)" \ libminiupnpc.so endef define Package/$(PKG_NAME)/install $(INSTALL_DIR) $(1)/usr/lib $(INSTALL_BIN) $(PKG_BUILD_DIR)/libminiupnpc.so $(1)/usr/lib/ $(INSTALL_DIR) $(STAGING_DIR)/usr/lib/ $(INSTALL_BIN) $(PKG_BUILD_DIR)/libminiupnpc.so $(STAGING_DIR)/usr/lib/ endef $(eval $(call BuildPackage,$(PKG_NAME))) ``` --- ## ✅ **修改说明** | 修改点 | 说明 | |--------|------| | `Build/Compile` | 添加编译规则,调用 `make` 编译 `libminiupnpc.so` | | `Build/Install` | 显式复制 `.so` 文件到目标系统和 `STAGING_DIR` | | `DEPENDS` | 添加基本依赖(zlib、pthread、rt) | | `TITLE` 和 `description` | 增加描述信息,便于识别和管理 | --- ## ✅ **注意事项** ### ✅ 你需要确保 `src/` 目录下有能生成 `.so` 的 `Makefile`,例如: ```makefile # src/Makefile 示例 CC = gcc CFLAGS = -fPIC -Wall OBJS = miniupnpc.o upnpcommands.o upnphttp.o upnpreplyparse.o libminiupnpc.so: $(OBJS) $(CC) -shared -o $@ $(OBJS) -lz -lpthread -lrt clean: rm -f *.o libminiupnpc.so ``` 如果你没有提供这个 `Makefile`,你可以手动编译 `.so`,如下: ```makefile define Build/Compile $(TARGET_CC) -shared -fPIC -o $(PKG_BUILD_DIR)/libminiupnpc.so \ $(PKG_BUILD_DIR)/miniupnpc.c \ $(PKG_BUILD_DIR)/upnpcommands.c \ $(PKG_BUILD_DIR)/upnphttp.c \ $(PKG_BUILD_DIR)/upnpreplyparse.c endef ``` --- ## ✅ **构建顺序建议** 1. 先构建 `tp-miniupnpc`,生成 `libminiupnpc.so`; 2. 然后再构建 `libtpsocket`,它依赖 `libminiupnpc.so`; 3. OpenWrt 会自动处理依赖关系,确保 `libminiupnpc.so` 已存在。 --- ##
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符  | 博主筛选后可见
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值