MSYS2配置+通用makefile编写

MSYS2的下载

https://mirrors.tuna.tsinghua.edu.cn/help/msys2/

makefile和gcc的安装

在 MSYS2 终端中输入下列命令即可

pacman -S gcc
pacman -S make

如果windows已经安装过了,可以在 MSYS2中添加配置:
在这里插入图片描述
在这里插入图片描述
notice:就是这个环境变量的设置,网上找了好多资料,都说是到windows下去设置环境变量,完全没用,真坑爹啊。

转:> https://blog.csdn.net/qq_16981075/article/details/123835207

通用makafile

CROSS_COMPILE = mingw32-
AS = $(CROSS_COMPILE)as
LD = $(CROSS_COMPILE)ld
CC = $(CROSS_COMPILE)gcc
CPP = $(CC) -E
AR = $(CROSS_COMPILE)ar
NM = $(CROSS_COMPILE)nm
 
STRIP = $(CROSS_COMPILE)strip
OBJCOPY = $(CROSS_COMPILE)objcopy
OBJDUMP = $(CROSS_COMPILE)objdump

obj_dir = obj
export AS LD CC CPP AR NM
export STRIP OBJCOPY OBJDUMP
export obj_dir
 
CFLAGS := -Wall  -O0 
CFLAGS += -I $(shell pwd)/include
 
LDFLAGS := -lm 
 
export CFLAGS LDFLAGS

OUTPUT_DIR := ./output
TOPDIR := $(shell pwd)
export TOPDIR
 
TARGET := show_file
 
 
obj-y += main.o
obj-y += src/


 
all: distclean
	mkdir $(OUTPUT_DIR)
	make -C ./ -f Makefile.build
	$(CC) $(LDFLAGS) -o $(OUTPUT_DIR)/$(TARGET) $(obj_dir)/built-in.o
 
 
clean:
	rm -f $(shell find -name "*.o")
	rm -f $(TARGET)
 
distclean:
	rm -f $(shell find -name "*.o")
	rm -f $(shell find -name "*.d")
	rm -f $(TARGET).exe
	rm -rf $(OUTPUT_DIR)/
	find . -name "$(obj_dir)" -type d -exec rm -rf {} \; -prune

Makefile.build

PHONY := __build
__build:
 
obj-y :=
subdir-y :=
 
include Makefile
 
# obj-y := a.o b.o c/ d/
# $(filter %/, $(obj-y))   : c/ d/
# __subdir-y  : c d
# subdir-y    : c d
__subdir-y := $(patsubst %/,%,$(filter %/, $(obj-y)))
subdir-y += $(__subdir-y)
 
# c/built-in.o d/obj/built-in.o
subdir_objs := $(foreach f,$(subdir-y),$(f)/$(obj_dir)/built-in.o)
 
# a.o b.o
cur_obj_all := $(filter-out %/, $(obj-y))
cur_objs := $(foreach f,$(cur_obj_all),$(obj_dir)/$(f))
dep_files := $(foreach f,$(cur_obj_all),.$(f).d)
dep_files := $(wildcard $(dep_files))
 
ifneq ($(dep_files),)
  include $(dep_files)
endif
 
PHONY += $(subdir-y)
 
__build : $(subdir-y) built-in.o
 
$(subdir-y):
	make -C $@ -f $(TOPDIR)/Makefile.build
 
built-in.o : $(cur_objs) $(subdir_objs)
	$(LD) -r -o ./$(obj_dir)/$@ $^
 
dep_file = $@.d
 
$(obj_dir)/%.o : %.c
	mkdir ./$(obj_dir)
	$(CC) $(CFLAGS) -Wp,-MD,$(dep_file) -c -o $@ $<
	
.PHONY : $(PHONY)

目录结构

在这里插入图片描述
进去include目录
在这里插入图片描述
进去src目录
在这里插入图片描述
除了上述的两个makefile之外,其余的makefile只需要包含当前目录的文件及子目录,如下所示:
在这里插入图片描述
转:https://blog.csdn.net/weixin_45775710/article/details/115640255

makefile工程下载

  • 2
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
MSYS2 (Minimal SYStem for Windows) 和 Visual Studio Code (VSCode) 是两个相互补充的工具组合,它们在Windows平台上广泛用于软件开发,尤其是使用C、C++、Git等技术的项目。 **MSYS2**: - MSYS2是一个基于MinGW(Minimalist GNU for Windows)的跨平台软件包管理器,它为Windows用户提供了一个类似于Linux的命令行环境,但使用的是Windows的API。 - 它包含了各种开源工具,如GCC编译器、Git、make、bash shell等,使得开发者能够在Windows上构建和管理Unix-like应用程序的开发环境。 - 安装过程通常会自动安装mingw-w64工具链,这对于支持C++库和跨平台开发非常重要。 **Visual Studio Code**: - Visual Studio Code是由Microsoft开发的一款轻量级的源代码编辑器,以其简洁的界面和强大的扩展性而闻名。 - 它支持多种编程语言,包括C/C++,提供了代码补全、调试、版本控制集成(如Git)等功能。 - 配合C/C++插件(如C/C++ Extension Pack),VSCode可以在MSYS2环境下直接编写、构建和调试C++代码。 - 另外,VSCode还有丰富的社区插件支持,可以进一步增强代码编辑和管理体验。 要将MSYS2和VSCode结合起来,你可以按照以下步骤操作: 1. **安装MSYS2**:从官方网站下载并安装MSYS2 MinGW环境。 2. **配置环境变量**:确保PATH环境变量包含了MSYS2的bin目录,这样可以在命令行中直接使用msys2和mingw64的工具。 3. **安装VSCode**:直接从官网或应用商店下载安装VSCode。 4. **安装C/C++插件**:在VSCode内打开Extensions Marketplace,搜索并安装C/C++插件(如"ms-vscode.cpptools")。 5. **设置工作区**:在VSCode中创建一个新的C++项目,设置CMakeLists.txt或其他构建文件,然后配置工作区的C++工具链指向MSYS2的mingw64。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值