From e37e256e440fb21ea0aeace10c2a21f0b1b000a1 Mon Sep 17 00:00:00 2001 From: taynpg Date: Tue, 24 Dec 2024 20:45:26 +0800 Subject: [PATCH] =?UTF-8?q?compile=EF=BC=9AXP=E7=BC=96=E8=AF=91=E9=80=9A?= =?UTF-8?q?=E8=BF=87=EF=BC=8C=E6=B7=BB=E5=8A=A0XP=E4=B8=8BMakefile?= =?UTF-8?q?=E7=BC=96=E8=AF=91=E8=84=9A=E6=9C=AC=E3=80=82?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- Makefile | 53 +++++++++++++++++++++++----------------------- client/client.cpp | 2 +- client/file_oper.h | 1 - server/server.cpp | 2 +- util/util.cpp | 3 ++- 5 files changed, 31 insertions(+), 30 deletions(-) diff --git a/Makefile b/Makefile index f69512c..c2bca29 100644 --- a/Makefile +++ b/Makefile @@ -1,43 +1,43 @@ -# 编译器和标志 +# +# ***************************** XP make SCRIPT ******************************** +# +# XP USE, Test On Windows XP SP3 under mingw730_32 with boost1.81 filesystem +# boost compile arg: b2.exe link=static runtime-link=shared --with-filesystem --prefix=C:\boost install +export PATH := C:\mingw32\bin:$(PATH) CXX = g++ -CXXFLAGS = -Wall -std=c++17 -I./ -I./3rd -I./net -I./ofen/include -I./util # 添加 3rd 目录的头文件路径 - +CXXFLAGSA = -O2 -Wall -DUSE_BOOST_FILESYSTEM -std=c++17 -I./ -I./3rd -I./net -I./ofen/include -I./util +CXXFLAGSB = -IC:\boost\include\boost-1_81 -Wno-unused-variable # 目录 -SRCDIR = src -OBJDIR = obj -BINDIR = bin -LIBDIR = lib -THIRDDIR = 3rd - +CURDIR_WINDOWS := $(subst /,\,$(CURDIR)) +OBJDIR = $(CURDIR_WINDOWS)\build\obj +BINDIR = $(CURDIR_WINDOWS)\build\bin +LIBDIR = $(CURDIR_WINDOWS)\build\lib # 库路径和库文件 -LIB_PATHS = -L$(LIBDIR) -L$(THIRDDIR)/lib # 假设 3rd 下有一些库文件 -LIBS = -lws2_32 -lwsock32 - +LIB_PATHS = -L$(LIBDIR) -LC:\boost\lib +LIBS = -lws2_32 -lwsock32 -lboost_filesystem-mgw7-mt-x32-1_81 # 源文件 UTIL_SRC = $(wildcard util/*.cpp) NET_SRC = $(wildcard net/*.cpp) OFEN_SRC = $(wildcard ofen/src/*.cpp) CLIENT_SRC = $(wildcard client/*.cpp) SERVER_SRC = $(wildcard server/*.cpp) - # 对应的目标文件 UTIL_OBJ = $(UTIL_SRC:%.cpp=$(OBJDIR)/%.o) NET_OBJ = $(NET_SRC:%.cpp=$(OBJDIR)/%.o) OFEN_OBJ = $(OFEN_SRC:%.cpp=$(OBJDIR)/%.o) CLIENT_OBJ = $(CLIENT_SRC:%.cpp=$(OBJDIR)/%.o) SERVER_OBJ = $(SERVER_SRC:%.cpp=$(OBJDIR)/%.o) - # 库文件 -UTIL_LIB = $(LIBDIR)/libutil.a -NET_LIB = $(LIBDIR)/libnet.a -OFEN_LIB = $(LIBDIR)/libofen.a - +UTIL_LIB = $(LIBDIR)\libutil.a +NET_LIB = $(LIBDIR)\libnet.a +OFEN_LIB = $(LIBDIR)\libofen.a # 可执行文件 -CLIENT_BIN = $(BINDIR)/client -SERVER_BIN = $(BINDIR)/server - +CLIENT_BIN = $(BINDIR)\client.exe +SERVER_BIN = $(BINDIR)\server.exe # 生成的目标文件夹 -$(shell mkdir -p $(OBJDIR) $(BINDIR) $(LIBDIR)) +$(shell if not exist "$(OBJDIR)" md "$(OBJDIR)") +$(shell if not exist "$(BINDIR)" md "$(BINDIR)") +$(shell if not exist "$(LIBDIR)" md "$(LIBDIR)") # 默认目标:编译所有目标 all: $(CLIENT_BIN) $(SERVER_BIN) @@ -56,19 +56,20 @@ $(OFEN_LIB): $(OFEN_OBJ) # 生成 client 可执行文件 $(CLIENT_BIN): $(CLIENT_OBJ) $(UTIL_LIB) $(NET_LIB) $(OFEN_LIB) - $(CXX) -o $@ $^ $(CXXFLAGS) $(LIB_PATHS) $(LIBS) + $(CXX) -o $@ $^ $(CXXFLAGSA) $(CXXFLAGSB) $(LIB_PATHS) $(LIBS) # 生成 server 可执行文件 $(SERVER_BIN): $(SERVER_OBJ) $(UTIL_LIB) $(NET_LIB) $(OFEN_LIB) - $(CXX) -o $@ $^ $(CXXFLAGS) $(LIB_PATHS) $(LIBS) + $(CXX) -o $@ $^ $(CXXFLAGSA) $(CXXFLAGSB) $(LIB_PATHS) $(LIBS) # 编译 .cpp 文件为 .o 文件 $(OBJDIR)/%.o: %.cpp - $(CXX) -c -o $@ $< $(CXXFLAGS) + @if not exist "$(subst /,\,$(dir $@))" (md "$(subst /,\,$(dir $@))") + $(CXX) -c -o $@ $< $(CXXFLAGSA) $(CXXFLAGSB) # 清理生成的文件 clean: - rm -rf $(OBJDIR) $(BINDIR) $(LIBDIR) + rd /S /Q $(CURDIR_WINDOWS)\build # 只编译可执行文件 .PHONY: all clean diff --git a/client/client.cpp b/client/client.cpp index 6535b9c..438e62c 100644 --- a/client/client.cpp +++ b/client/client.cpp @@ -460,7 +460,7 @@ void CClient::handle_frame(CFrameBuffer* buf) task_list_[index]->id = id; } - logger_->debug("**********************************************************"); + logger_->debug("*****************************************"); logger_->info("{}", real); } } diff --git a/client/file_oper.h b/client/file_oper.h index 70c51e6..752e745 100644 --- a/client/file_oper.h +++ b/client/file_oper.h @@ -1,4 +1,3 @@ -#include #include #include #include diff --git a/server/server.cpp b/server/server.cpp index 31fdaa2..209b133 100644 --- a/server/server.cpp +++ b/server/server.cpp @@ -5,7 +5,7 @@ using namespace ofen; constexpr int g_MaxCacheLen = 1024 * 1024 * 50; CTcpServer::CTcpServer(asio::io_context& io_context, const std::shared_ptr& logger) - : io_context_(io_context), logger_(logger), acceptor_(io_context) + : io_context_(io_context), acceptor_(io_context), logger_(logger) { th_run_ = true; } diff --git a/util/util.cpp b/util/util.cpp index b39bf83..f45194f 100644 --- a/util/util.cpp +++ b/util/util.cpp @@ -44,7 +44,8 @@ CFrameBuffer* CTransProtocal::parse(CMutBuffer& buffer) unsigned char tail[] = {0xFF, 0xFF}; // 如果超出 1MB的内容都无法解析成功,则认为是有无效客户端参与链接。 - if (buffer.get_len() > MAX_FRAME_SIZE) { + size_t cur_len = static_cast(buffer.get_len()); + if (cur_len > MAX_FRAME_SIZE) { buffer.clear(); // 这里故意延迟。 std::this_thread::sleep_for(std::chrono::seconds(600));