ZBLOG

CC = gcc ECHO = echo :if [ ! -d "objs" ]; then \ mkdir -p objs;\ fi :if [ ! -d "bin" ]; then \ mkdir -p bin; \ fi SUB_DIR = core/ sample/ ROOT_DIR = $(shell pwd) OBJS_DIR = $(ROOT_DIR)/objs BIN_DIR = $(ROOT_DIR)/bin BIN = nty_...

在这个示例的Makefile中,如果你想要添加创建目录的逻辑,可以像下面这样修改:

CC = gcc
ECHO = echo

SUB_DIR = core/ sample/
ROOT_DIR = $(shell pwd)
OBJS_DIR = $(ROOT_DIR)/objs
BIN_DIR = $(ROOT_DIR)/bin

BIN = nty_server nty_client nty_bench nty_server_mulcore nty_http_server nty_mysql_client nty_mysql_oper nty_websocket_server nty_http_server_mulcore ntyco_httpd nty_rediscli
FLAG = -lpthread -O3 -lcrypto -lssl -lmysqlclient -lhiredis -ldl -I $(ROOT_DIR)/core  -I /usr/include/mysql/ -I /usr/local/include/hiredis/

CUR_SOURCE = ${wildcard *.c}
CUR_OBJS = ${patsubst %.c, %.o, %(CUR_SOURCE)}

export CC BIN_DIR OBJS_DIR ROOT_IDR FLAG BIN ECHO EFLAG

all : create_dirs $(SUB_DIR) $(BIN)
.PHONY : all


create_dirs:
    @if [ ! -d "objs" ]; then \
        mkdir -p objs; \
    fi

    @if [ ! -d "bin" ]; then \
        mkdir -p bin; \
    fi

$(SUB_DIR) : create_dirs
        make -C $@

$(BIN) : create_dirs
        # 添加编译命令来构建可执行文件,例如:
        $(CC) $@.c $(FLAG) -o $(BIN_DIR)/$@

ECHO :
        @echo $(SUB_DIR)

以上示例在Makefile中添加了create_dirs目标,在all目标之前调用create_dirs来确保目录存在。然后,在编译可执行文件时也调用了create_dirs目标,以确保将可执行文件放入正确的目录中。

请根据你的具体需求和项目结构适配以上示例。希望对你有所帮助!


内容由零声教学AI助手提供,问题来源于学员提问

本站部分文章来源于网络,版权归原作者所有,如有侵权请联系站长删除。
转载请注明出处:https://golang.0voice.com/?id=16532

分享:
扫描分享到社交APP
上一篇
下一篇
发表列表
游客 游客
此处应有掌声~
评论列表

还没有评论,快来说点什么吧~

联系我们

在线咨询: 点击这里给我发消息

微信号:3007537140

上班时间: 10:30-22:30

关注我们
x

注册

已经有帐号?