From aa7f674b96b6d420a95278fe8e76526efc907223 Mon Sep 17 00:00:00 2001 From: LiuYuanchi Date: Fri, 10 May 2024 22:23:25 +0800 Subject: [PATCH] init new --- nfa/CMakeLists.txt | 17 ++++++----------- nfa/archive/nfa.zip | Bin 0 -> 12682 bytes nfa/{ => include}/nfa.h | 0 nfa/{ => src}/dfa.cpp | 0 nfa/{ => src}/nfa.cpp | 4 ---- nfa/{ => src}/tool.cpp | 0 nfa/{ => test}/test_main.cpp | 0 7 files changed, 6 insertions(+), 15 deletions(-) create mode 100644 nfa/archive/nfa.zip rename nfa/{ => include}/nfa.h (100%) rename nfa/{ => src}/dfa.cpp (100%) rename nfa/{ => src}/nfa.cpp (99%) rename nfa/{ => src}/tool.cpp (100%) rename nfa/{ => test}/test_main.cpp (100%) diff --git a/nfa/CMakeLists.txt b/nfa/CMakeLists.txt index 8a51dd4..954f5de 100644 --- a/nfa/CMakeLists.txt +++ b/nfa/CMakeLists.txt @@ -2,19 +2,14 @@ cmake_minimum_required(VERSION 3.10) project(nfa) # 收集所有的cpp源文件 -file(GLOB SOURCES dfa.cpp nfa.cpp tool.cpp test_main.cpp) - -# 设置输出目录为 bin -set(CMAKE_RUNTIME_OUTPUT_DIRECTORY ${CMAKE_BINARY_DIR}) +file(GLOB SOURCES "src/*.cpp") # 创建静态链接库 add_library(nfa STATIC ${SOURCES}) +# Test:添加可执行文件并链接目标库 +add_executable(test_nfa test/test_main.cpp) +target_link_libraries(test_nfa nfa) + # 添加头文件目录 -target_include_directories(nfa PUBLIC ${CMAKE_CURRENT_SOURCE_DIR}) - -# 添加可执行文件 -add_executable(test_nfa test_main.cpp nfa) - -# 链接目标库 -target_link_libraries(test_nfa nfa) \ No newline at end of file +target_include_directories(nfa PUBLIC ${CMAKE_CURRENT_SOURCE_DIR}/include) diff --git a/nfa/archive/nfa.zip b/nfa/archive/nfa.zip new file mode 100644 index 0000000000000000000000000000000000000000..22d3364baf46cfac3e4a7931a86014dc254a5d4b GIT binary patch literal 12682 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