基于nmake编译NOVAS天文软件的简单Makefile需求
适用于VS2022 Community的NOVAS checkout-stars程序nmake Makefile
前提准备
- 打开Developer Command Prompt for Visual Studio 2022(确保VS编译工具链的环境变量已自动加载)
- 将
checkout-stars.c、novas.c、novascon.c、nutation.c、solsys3.c、readeph0.c及对应头文件放在同一工作目录下
Makefile 内容
将以下代码保存为Makefile(文件名不要加后缀):
# 定义编译器与基础编译选项 CC = cl.exe CFLAGS = /nologo /O2 /W3 # 目标程序名称 TARGET = checkout-stars.exe # 需要编译的所有源文件列表 SRCS = checkout-stars.c novas.c novascon.c nutation.c solsys3.c readeph0.c # 自动推导生成的目标文件 OBJS = $(SRCS:.c=.obj) # 默认执行目标:编译并链接生成可执行文件 all: $(TARGET) # 链接目标文件生成最终程序 $(TARGET): $(OBJS) $(CC) $(CFLAGS) /Fe:$@ $(OBJS) # 单文件编译规则:将.c文件转为.obj文件 .c.obj: $(CC) $(CFLAGS) /c $< # 清理编译产物的目标 clean: del /q $(OBJS) $(TARGET)
使用说明
- 编译程序:在VS开发者命令行中切换到工作目录,执行命令
nmake - 清理编译生成的中间文件和可执行程序:执行命令
nmake clean
细节说明
CFLAGS中的/O2对应NOVAS指南的编译优化要求,/W3开启三级代码警告,/nologo关闭编译器启动冗余信息- 源文件中的头文件依赖已通过代码内的
#include自动处理,无需额外在Makefile中声明 - 后续扩展开发时,只需修改
SRCS添加新源文件,或调整CFLAGS修改编译规则即可
内容的提问来源于stack exchange,提问作者Gerard Ashton
相关产品推荐
相关产品推荐

