瀏覽代碼

加入自动生成make文件

lijinwen 2 月之前
父節點
當前提交
43b92cd87a
共有 8 個文件被更改,包括 356 次插入364 次删除
  1. 0 0
      BaseHelper/Loger.h
  2. 0 0
      BaseHelper/loger.cc
  3. 76 0
      Makefile
  4. 218 364
      ProtocolDecoder.vcxproj
  5. 1 0
      output/make输出目录.txt
  6. 二進制
      x64/Debug/ProtocolDecoder.dll
  7. 二進制
      x64/Debug/ProtocolDecoder.pdb
  8. 61 0
      自动生成make文件.py

+ 0 - 0
BaseHelper/Logger.h → BaseHelper/Loger.h


+ 0 - 0
BaseHelper/logger.cc → BaseHelper/loger.cc


+ 76 - 0
Makefile

@@ -0,0 +1,76 @@
+CXX = g++
+CXXFLAGS = -Wall -g -shared
+OBJS = output\decodeevent.o output\decoderesult.o output\dllmain.o output\edgepulse.o output\edgepulsedata.o output\exportmethod.o output\protocoldecodebase.o output\quantizeparams.o output\BaseHelper\commonhelper.o output\BaseHelper\datacheckhelper.o output\BaseHelper\decodedatahelper.o output\BaseHelper\loger.o output\ProtocolRS232\rs232decode.o output\ProtocolRS232\rs232decodeevent.o output\ProtocolRS232\rs232decoderesult.o output\ProtocolRS232\rs232packet.o output\ProtocolUSB\constants.o output\ProtocolUSB\usbdecodeevent.o output\ProtocolUSB\usbdecoder.o output\ProtocolUSB\usbdecoderesult.o output\ProtocolUSB\usbpacket.o
+
+TARGET = output/ProtocolDecoder.dll
+
+all: $(TARGET)
+
+$(TARGET): $(OBJS)
+	$(CXX) $(CXXFLAGS) -o $@ $^
+
+output\decodeevent.o: decodeevent.cc
+	$(CXX) $(CXXFLAGS) -c decodeevent.cc -o output\decodeevent.o
+
+output\decoderesult.o: decoderesult.cc
+	$(CXX) $(CXXFLAGS) -c decoderesult.cc -o output\decoderesult.o
+
+output\dllmain.o: dllmain.cc
+	$(CXX) $(CXXFLAGS) -c dllmain.cc -o output\dllmain.o
+
+output\edgepulse.o: edgepulse.cc
+	$(CXX) $(CXXFLAGS) -c edgepulse.cc -o output\edgepulse.o
+
+output\edgepulsedata.o: edgepulsedata.cc
+	$(CXX) $(CXXFLAGS) -c edgepulsedata.cc -o output\edgepulsedata.o
+
+output\exportmethod.o: exportmethod.cc
+	$(CXX) $(CXXFLAGS) -c exportmethod.cc -o output\exportmethod.o
+
+output\protocoldecodebase.o: protocoldecodebase.cc
+	$(CXX) $(CXXFLAGS) -c protocoldecodebase.cc -o output\protocoldecodebase.o
+
+output\quantizeparams.o: quantizeparams.cc
+	$(CXX) $(CXXFLAGS) -c quantizeparams.cc -o output\quantizeparams.o
+
+output\BaseHelper\commonhelper.o: BaseHelper\commonhelper.cc
+	$(CXX) $(CXXFLAGS) -c BaseHelper\commonhelper.cc -o output\BaseHelper\commonhelper.o
+
+output\BaseHelper\datacheckhelper.o: BaseHelper\datacheckhelper.cc
+	$(CXX) $(CXXFLAGS) -c BaseHelper\datacheckhelper.cc -o output\BaseHelper\datacheckhelper.o
+
+output\BaseHelper\decodedatahelper.o: BaseHelper\decodedatahelper.cc
+	$(CXX) $(CXXFLAGS) -c BaseHelper\decodedatahelper.cc -o output\BaseHelper\decodedatahelper.o
+
+output\BaseHelper\loger.o: BaseHelper\loger.cc
+	$(CXX) $(CXXFLAGS) -c BaseHelper\loger.cc -o output\BaseHelper\loger.o
+
+output\ProtocolRS232\rs232decode.o: ProtocolRS232\rs232decode.cc
+	$(CXX) $(CXXFLAGS) -c ProtocolRS232\rs232decode.cc -o output\ProtocolRS232\rs232decode.o
+
+output\ProtocolRS232\rs232decodeevent.o: ProtocolRS232\rs232decodeevent.cc
+	$(CXX) $(CXXFLAGS) -c ProtocolRS232\rs232decodeevent.cc -o output\ProtocolRS232\rs232decodeevent.o
+
+output\ProtocolRS232\rs232decoderesult.o: ProtocolRS232\rs232decoderesult.cc
+	$(CXX) $(CXXFLAGS) -c ProtocolRS232\rs232decoderesult.cc -o output\ProtocolRS232\rs232decoderesult.o
+
+output\ProtocolRS232\rs232packet.o: ProtocolRS232\rs232packet.cc
+	$(CXX) $(CXXFLAGS) -c ProtocolRS232\rs232packet.cc -o output\ProtocolRS232\rs232packet.o
+
+output\ProtocolUSB\constants.o: ProtocolUSB\constants.cc
+	$(CXX) $(CXXFLAGS) -c ProtocolUSB\constants.cc -o output\ProtocolUSB\constants.o
+
+output\ProtocolUSB\usbdecodeevent.o: ProtocolUSB\usbdecodeevent.cc
+	$(CXX) $(CXXFLAGS) -c ProtocolUSB\usbdecodeevent.cc -o output\ProtocolUSB\usbdecodeevent.o
+
+output\ProtocolUSB\usbdecoder.o: ProtocolUSB\usbdecoder.cc
+	$(CXX) $(CXXFLAGS) -c ProtocolUSB\usbdecoder.cc -o output\ProtocolUSB\usbdecoder.o
+
+output\ProtocolUSB\usbdecoderesult.o: ProtocolUSB\usbdecoderesult.cc
+	$(CXX) $(CXXFLAGS) -c ProtocolUSB\usbdecoderesult.cc -o output\ProtocolUSB\usbdecoderesult.o
+
+output\ProtocolUSB\usbpacket.o: ProtocolUSB\usbpacket.cc
+	$(CXX) $(CXXFLAGS) -c ProtocolUSB\usbpacket.cc -o output\ProtocolUSB\usbpacket.o
+
+clean:
+	rm -f $(OBJS) $(TARGET)

+ 218 - 364
ProtocolDecoder.vcxproj

@@ -1,367 +1,221 @@
 <?xml version="1.0" encoding="utf-8"?>
 <Project DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
-    <ItemGroup Label="ProjectConfigurations">
-        <ProjectConfiguration Include="Debug|Win32">
-            <Configuration>Debug</Configuration>
-            <Platform>Win32</Platform>
-        </ProjectConfiguration>
-        <ProjectConfiguration Include="Release|Win32">
-            <Configuration>Release</Configuration>
-            <Platform>Win32</Platform>
-        </ProjectConfiguration>
-        <ProjectConfiguration Include="Debug|x64">
-            <Configuration>Debug</Configuration>
-            <Platform>x64</Platform>
-        </ProjectConfiguration>
-        <ProjectConfiguration Include="Release|x64">
-            <Configuration>Release</Configuration>
-            <Platform>x64</Platform>
-        </ProjectConfiguration>
-    </ItemGroup>
-    <PropertyGroup Label="Globals">
-        <VCProjectVersion>15.0</VCProjectVersion>
-        <ProjectGuid>{452B01D0-9E45-432F-904B-A81BB6C5B9C4}</ProjectGuid>
-        <Keyword>Win32Proj</Keyword>
-        <RootNamespace>ProtocolDecoder</RootNamespace>
-        <WindowsTargetPlatformVersion>10.0</WindowsTargetPlatformVersion>
-    </PropertyGroup>
-    <Import Project="$(VCTargetsPath)\Microsoft.Cpp.Default.props"/>
-    <PropertyGroup>
-        <PreferredToolArchitecture>x64</PreferredToolArchitecture>
-    </PropertyGroup>
-    <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" Label="Configuration">
-        <ConfigurationType>DynamicLibrary</ConfigurationType>
-        <UseDebugLibraries>true</UseDebugLibraries>
-        <PlatformToolset>v143</PlatformToolset>
-        <CharacterSet>Unicode</CharacterSet>
-    </PropertyGroup>
-    <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" Label="Configuration">
-        <ConfigurationType>DynamicLibrary</ConfigurationType>
-        <UseDebugLibraries>false</UseDebugLibraries>
-        <PlatformToolset>v143</PlatformToolset>
-        <WholeProgramOptimization>true</WholeProgramOptimization>
-        <CharacterSet>Unicode</CharacterSet>
-    </PropertyGroup>
-    <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'" Label="Configuration">
-        <ConfigurationType>DynamicLibrary</ConfigurationType>
-        <UseDebugLibraries>true</UseDebugLibraries>
-        <PlatformToolset>v143</PlatformToolset>
-        <CharacterSet>Unicode</CharacterSet>
-    </PropertyGroup>
-    <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'" Label="Configuration">
-        <ConfigurationType>DynamicLibrary</ConfigurationType>
-        <UseDebugLibraries>false</UseDebugLibraries>
-        <PlatformToolset>v143</PlatformToolset>
-        <WholeProgramOptimization>true</WholeProgramOptimization>
-        <CharacterSet>Unicode</CharacterSet>
-    </PropertyGroup>
-    <Import Project="$(VCTargetsPath)\Microsoft.Cpp.props"/>
-    <ImportGroup Label="ExtensionSettings">
-    </ImportGroup>
-    <ImportGroup Label="Shared">
-    </ImportGroup>
-    <ImportGroup Label="PropertySheets" Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
-        <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform"/>
-    </ImportGroup>
-    <ImportGroup Label="PropertySheets" Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
-        <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform"/>
-    </ImportGroup>
-    <ImportGroup Label="PropertySheets" Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">
-        <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform"/>
-    </ImportGroup>
-    <ImportGroup Label="PropertySheets" Condition="'$(Configuration)|$(Platform)'=='Release|x64'">
-        <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform"/>
-    </ImportGroup>
-    <PropertyGroup Label="UserMacros"/>
-    <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
-        <LinkIncremental>true</LinkIncremental>
-    </PropertyGroup>
-    <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">
-        <LinkIncremental>true</LinkIncremental>
-        <LibraryPath>$(VC_LibraryPath_x64);$(WindowsSDK_LibraryPath_x64);C:\Program Files\Microsoft Visual Studio\2022\Community\VC\Tools\MSVC\14.37.32822\lib\x64</LibraryPath>
-    </PropertyGroup>
-    <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
-        <LinkIncremental>false</LinkIncremental>
-    </PropertyGroup>
-    <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'">
-        <LinkIncremental>false</LinkIncremental>
-    </PropertyGroup>
-    <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
-        <ClCompile>
-            <PrecompiledHeader>NotUsing</PrecompiledHeader>
-            <WarningLevel>Level3</WarningLevel>
-            <Optimization>Disabled</Optimization>
-            <SDLCheck>true</SDLCheck>
-            <PreprocessorDefinitions>WIN32;_DEBUG;CPPDYNAMICLIBRARYTEMPLATE_EXPORTS;_WINDOWS;_USRDLL;%(PreprocessorDefinitions)</PreprocessorDefinitions>
-            <ConformanceMode>true</ConformanceMode>
-            <PrecompiledHeaderFile>pch.h</PrecompiledHeaderFile>
-        </ClCompile>
-        <Link>
-            <SubSystem>Windows</SubSystem>
-            <GenerateDebugInformation>true</GenerateDebugInformation>
-        </Link>
-    </ItemDefinitionGroup>
-    <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">
-        <ClCompile>
-            <PrecompiledHeader>NotUsing</PrecompiledHeader>
-            <WarningLevel>Level3</WarningLevel>
-            <Optimization>Disabled</Optimization>
-            <SDLCheck>true</SDLCheck>
-            <PreprocessorDefinitions>_DEBUG;CPPDYNAMICLIBRARYTEMPLATE_EXPORTS;_WINDOWS;_USRDLL;LIBMATH_EXPORTS;%(PreprocessorDefinitions)</PreprocessorDefinitions>
-            <ConformanceMode>true</ConformanceMode>
-            <PrecompiledHeaderFile>pch.h</PrecompiledHeaderFile>
-            <LanguageStandard>stdcpp17</LanguageStandard>
-            <LanguageStandard_C>stdc17</LanguageStandard_C>
-        </ClCompile>
-        <Link>
-            <SubSystem>Windows</SubSystem>
-            <GenerateDebugInformation>true</GenerateDebugInformation>
-        </Link>
-    </ItemDefinitionGroup>
-    <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
-        <ClCompile>
-            <PrecompiledHeader>NotUsing</PrecompiledHeader>
-            <WarningLevel>Level3</WarningLevel>
-            <Optimization>MaxSpeed</Optimization>
-            <FunctionLevelLinking>true</FunctionLevelLinking>
-            <IntrinsicFunctions>true</IntrinsicFunctions>
-            <SDLCheck>true</SDLCheck>
-            <PreprocessorDefinitions>WIN32;NDEBUG;CPPDYNAMICLIBRARYTEMPLATE_EXPORTS;_WINDOWS;_USRDLL;%(PreprocessorDefinitions)</PreprocessorDefinitions>
-            <ConformanceMode>true</ConformanceMode>
-            <PrecompiledHeaderFile>pch.h</PrecompiledHeaderFile>
-        </ClCompile>
-        <Link>
-            <SubSystem>Windows</SubSystem>
-            <EnableCOMDATFolding>true</EnableCOMDATFolding>
-            <OptimizeReferences>true</OptimizeReferences>
-            <GenerateDebugInformation>true</GenerateDebugInformation>
-        </Link>
-    </ItemDefinitionGroup>
-    <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'">
-        <ClCompile>
-            <PrecompiledHeader>NotUsing</PrecompiledHeader>
-            <WarningLevel>Level3</WarningLevel>
-            <Optimization>MaxSpeed</Optimization>
-            <FunctionLevelLinking>true</FunctionLevelLinking>
-            <IntrinsicFunctions>true</IntrinsicFunctions>
-            <SDLCheck>true</SDLCheck>
-            <PreprocessorDefinitions>NDEBUG;CPPDYNAMICLIBRARYTEMPLATE_EXPORTS;_WINDOWS;_USRDLL;%(PreprocessorDefinitions)</PreprocessorDefinitions>
-            <ConformanceMode>true</ConformanceMode>
-            <PrecompiledHeaderFile>pch.h</PrecompiledHeaderFile>
-        </ClCompile>
-        <Link>
-            <SubSystem>Windows</SubSystem>
-            <EnableCOMDATFolding>true</EnableCOMDATFolding>
-            <OptimizeReferences>true</OptimizeReferences>
-            <GenerateDebugInformation>true</GenerateDebugInformation>
-        </Link>
-    </ItemDefinitionGroup>
-    <ItemGroup>
-        <ClCompile Include="BaseHelper\CommonHelper.cpp"/>
-        <ClCompile Include="BaseHelper\DataCheckHelper.cpp">
-            <RuntimeLibrary>MultiThreadedDebugDll</RuntimeLibrary>
-            <BasicRuntimeChecks>EnableFastChecks</BasicRuntimeChecks>
-            <Optimization>Disabled</Optimization>
-            <SupportJustMyCode>true</SupportJustMyCode>
-            <AssemblerOutput>NoListing</AssemblerOutput>
-            <AssemblerListingLocation>x64\Debug\</AssemblerListingLocation>
-            <UndefineAllPreprocessorDefinitions>false</UndefineAllPreprocessorDefinitions>
-            <BrowseInformation>false</BrowseInformation>
-            <BrowseInformationFile>x64\Debug\</BrowseInformationFile>
-            <CompileAs>Default</CompileAs>
-            <ConformanceMode>true</ConformanceMode>
-            <DiagnosticsFormat>Column</DiagnosticsFormat>
-            <DisableLanguageExtensions>false</DisableLanguageExtensions>
-            <ErrorReporting>Prompt</ErrorReporting>
-            <ExpandAttributedSource>false</ExpandAttributedSource>
-            <ExceptionHandling>Sync</ExceptionHandling>
-            <EnableASAN>false</EnableASAN>
-            <EnableFuzzer>false</EnableFuzzer>
-            <EnableFiberSafeOptimizations>false</EnableFiberSafeOptimizations>
-            <EnableEnhancedInstructionSet>NotSet</EnableEnhancedInstructionSet>
-            <FloatingPointModel>Precise</FloatingPointModel>
-            <ForceConformanceInForLoopScope>true</ForceConformanceInForLoopScope>
-            <GenerateModuleDependencies>false</GenerateModuleDependencies>
-            <GenerateSourceDependencies>false</GenerateSourceDependencies>
-            <GenerateXMLDocumentationFiles>false</GenerateXMLDocumentationFiles>
-            <InlineFunctionExpansion>Default</InlineFunctionExpansion>
-            <IntrinsicFunctions>false</IntrinsicFunctions>
-            <IgnoreStandardIncludePath>false</IgnoreStandardIncludePath>
-            <LanguageStandard>stdcpp17</LanguageStandard>
-            <LanguageStandard_C>stdc17</LanguageStandard_C>
-            <MinimalRebuild>false</MinimalRebuild>
-            <ModuleDependenciesFile>x64\Debug\</ModuleDependenciesFile>
-            <ModuleOutputFile>x64\Debug\</ModuleOutputFile>
-            <OmitDefaultLibName>false</OmitDefaultLibName>
-            <FavorSizeOrSpeed>Neither</FavorSizeOrSpeed>
-            <WholeProgramOptimization>false</WholeProgramOptimization>
-            <ObjectFileName>x64\Debug\</ObjectFileName>
-            <CallingConvention>Cdecl</CallingConvention>
-            <ProgramDataBaseFileName>x64\Debug\vc143.pdb</ProgramDataBaseFileName>
-            <PrecompiledHeader>NotUsing</PrecompiledHeader>
-            <PrecompiledHeaderFile>pch.h</PrecompiledHeaderFile>
-            <PrecompiledHeaderOutputFile>x64\Debug\ProtocolDecoder.pch</PrecompiledHeaderOutputFile>
-            <PreprocessToFile>false</PreprocessToFile>
-            <PreprocessKeepComments>false</PreprocessKeepComments>
-            <PreprocessSuppressLineNumbers>false</PreprocessSuppressLineNumbers>
-            <RemoveUnreferencedCodeData>true</RemoveUnreferencedCodeData>
-            <ScanSourceForModuleDependencies>false</ScanSourceForModuleDependencies>
-            <ShowIncludes>false</ShowIncludes>
-            <SourceDependenciesFile>x64\Debug\</SourceDependenciesFile>
-            <SuppressStartupBanner>true</SuppressStartupBanner>
-            <BufferSecurityCheck>true</BufferSecurityCheck>
-            <SmallerTypeCheck>false</SmallerTypeCheck>
-            <SpectreMitigation>false</SpectreMitigation>
-            <StructMemberAlignment>Default</StructMemberAlignment>
-            <TrackerLogDirectory>x64\Debug\ProtocolDecoder.tlog\</TrackerLogDirectory>
-            <TranslateIncludes>false</TranslateIncludes>
-            <MinimalRebuildFromTracking>true</MinimalRebuildFromTracking>
-            <TreatWarningAsError>false</TreatWarningAsError>
-            <TreatWChar_tAsBuiltInType>true</TreatWChar_tAsBuiltInType>
-            <UseFullPaths>true</UseFullPaths>
-            <WarningLevel>Level3</WarningLevel>
-            <XMLDocumentationFileName>x64\Debug\</XMLDocumentationFileName>
-            <DebugInformationFormat>EditAndContinue</DebugInformationFormat>
-            <IntelJCCErratum>false</IntelJCCErratum>
-            <BuildStlModules>false</BuildStlModules>
-            <TreatAngleIncludeAsExternal>false</TreatAngleIncludeAsExternal>
-            <ExternalWarningLevel>InheritWarningLevel</ExternalWarningLevel>
-            <TreatExternalTemplatesAsInternal>true</TreatExternalTemplatesAsInternal>
-            <DisableAnalyzeExternal>false</DisableAnalyzeExternal>
-            <PreprocessorDefinitions>_DEBUG;CPPDYNAMICLIBRARYTEMPLATE_EXPORTS;_WINDOWS;_USRDLL;_WINDLL;_UNICODE;UNICODE;</PreprocessorDefinitions>
-            <SDLCheck>true</SDLCheck>
-            <LinkCompiled>true</LinkCompiled>
-        </ClCompile>
-        <ClCompile Include="BaseHelper\DecodeDataHelper.cpp">
-            <RuntimeLibrary>MultiThreadedDebugDll</RuntimeLibrary>
-            <BasicRuntimeChecks>EnableFastChecks</BasicRuntimeChecks>
-            <Optimization>Disabled</Optimization>
-            <SupportJustMyCode>true</SupportJustMyCode>
-            <AssemblerOutput>NoListing</AssemblerOutput>
-            <AssemblerListingLocation>x64\Debug\</AssemblerListingLocation>
-            <UndefineAllPreprocessorDefinitions>false</UndefineAllPreprocessorDefinitions>
-            <BrowseInformation>false</BrowseInformation>
-            <BrowseInformationFile>x64\Debug\</BrowseInformationFile>
-            <CompileAs>Default</CompileAs>
-            <ConformanceMode>true</ConformanceMode>
-            <DiagnosticsFormat>Column</DiagnosticsFormat>
-            <DisableLanguageExtensions>false</DisableLanguageExtensions>
-            <ErrorReporting>Prompt</ErrorReporting>
-            <ExpandAttributedSource>false</ExpandAttributedSource>
-            <ExceptionHandling>Sync</ExceptionHandling>
-            <EnableASAN>false</EnableASAN>
-            <EnableFuzzer>false</EnableFuzzer>
-            <EnableFiberSafeOptimizations>false</EnableFiberSafeOptimizations>
-            <EnableEnhancedInstructionSet>NotSet</EnableEnhancedInstructionSet>
-            <FloatingPointModel>Precise</FloatingPointModel>
-            <ForceConformanceInForLoopScope>true</ForceConformanceInForLoopScope>
-            <GenerateModuleDependencies>false</GenerateModuleDependencies>
-            <GenerateSourceDependencies>false</GenerateSourceDependencies>
-            <GenerateXMLDocumentationFiles>false</GenerateXMLDocumentationFiles>
-            <InlineFunctionExpansion>Default</InlineFunctionExpansion>
-            <IntrinsicFunctions>false</IntrinsicFunctions>
-            <IgnoreStandardIncludePath>false</IgnoreStandardIncludePath>
-            <LanguageStandard>stdcpp17</LanguageStandard>
-            <LanguageStandard_C>stdc17</LanguageStandard_C>
-            <MinimalRebuild>false</MinimalRebuild>
-            <ModuleDependenciesFile>x64\Debug\</ModuleDependenciesFile>
-            <ModuleOutputFile>x64\Debug\</ModuleOutputFile>
-            <OmitDefaultLibName>false</OmitDefaultLibName>
-            <FavorSizeOrSpeed>Neither</FavorSizeOrSpeed>
-            <WholeProgramOptimization>false</WholeProgramOptimization>
-            <ObjectFileName>x64\Debug\</ObjectFileName>
-            <CallingConvention>Cdecl</CallingConvention>
-            <ProgramDataBaseFileName>x64\Debug\vc143.pdb</ProgramDataBaseFileName>
-            <PrecompiledHeader>NotUsing</PrecompiledHeader>
-            <PrecompiledHeaderFile>pch.h</PrecompiledHeaderFile>
-            <PrecompiledHeaderOutputFile>x64\Debug\ProtocolDecoder.pch</PrecompiledHeaderOutputFile>
-            <PreprocessToFile>false</PreprocessToFile>
-            <PreprocessKeepComments>false</PreprocessKeepComments>
-            <PreprocessSuppressLineNumbers>false</PreprocessSuppressLineNumbers>
-            <RemoveUnreferencedCodeData>true</RemoveUnreferencedCodeData>
-            <ScanSourceForModuleDependencies>false</ScanSourceForModuleDependencies>
-            <ShowIncludes>false</ShowIncludes>
-            <SourceDependenciesFile>x64\Debug\</SourceDependenciesFile>
-            <SuppressStartupBanner>true</SuppressStartupBanner>
-            <BufferSecurityCheck>true</BufferSecurityCheck>
-            <SmallerTypeCheck>false</SmallerTypeCheck>
-            <SpectreMitigation>false</SpectreMitigation>
-            <StructMemberAlignment>Default</StructMemberAlignment>
-            <TrackerLogDirectory>x64\Debug\ProtocolDecoder.tlog\</TrackerLogDirectory>
-            <TranslateIncludes>false</TranslateIncludes>
-            <MinimalRebuildFromTracking>true</MinimalRebuildFromTracking>
-            <TreatWarningAsError>false</TreatWarningAsError>
-            <TreatWChar_tAsBuiltInType>true</TreatWChar_tAsBuiltInType>
-            <UseFullPaths>true</UseFullPaths>
-            <WarningLevel>Level3</WarningLevel>
-            <XMLDocumentationFileName>x64\Debug\</XMLDocumentationFileName>
-            <DebugInformationFormat>EditAndContinue</DebugInformationFormat>
-            <IntelJCCErratum>false</IntelJCCErratum>
-            <BuildStlModules>false</BuildStlModules>
-            <TreatAngleIncludeAsExternal>false</TreatAngleIncludeAsExternal>
-            <ExternalWarningLevel>InheritWarningLevel</ExternalWarningLevel>
-            <TreatExternalTemplatesAsInternal>true</TreatExternalTemplatesAsInternal>
-            <DisableAnalyzeExternal>false</DisableAnalyzeExternal>
-            <PreprocessorDefinitions>_DEBUG;CPPDYNAMICLIBRARYTEMPLATE_EXPORTS;_WINDOWS;_USRDLL;_WINDLL;_UNICODE;UNICODE;</PreprocessorDefinitions>
-            <SDLCheck>true</SDLCheck>
-            <LinkCompiled>true</LinkCompiled>
-        </ClCompile>
-        <ClCompile Include="BaseHelper\Logger.cpp"/>
-        <ClCompile Include="DecodeEvent.cpp"/>
-        <ClCompile Include="DecodeResult.cpp"/>
-        <ClCompile Include="dllmain.cpp"/>
-        <ClCompile Include="EdgePulse.cpp"/>
-        <ClCompile Include="EdgePulseData.cpp"/>
-        <ClCompile Include="ExportMethod.cpp"/>
-        <ClCompile Include="ProtocolDecodeBase.cpp"/>
-        <ClCompile Include="ProtocolRS232\RS232Decode.cpp"/>
-        <ClCompile Include="ProtocolRS232\RS232DecodeEvent.cpp"/>
-        <ClCompile Include="ProtocolRS232\RS232DecodeResult.cpp"/>
-        <ClCompile Include="ProtocolRS232\RS232Packet.cpp"/>
-        <ClCompile Include="ProtocolUSB\Constants.cpp"/>
-        <ClCompile Include="ProtocolUSB\USBDecoder.cpp"/>
-        <ClCompile Include="ProtocolUSB\UsbDecodeEvent.cpp"/>
-        <ClCompile Include="ProtocolUSB\UsbDecodeResult.cpp"/>
-        <ClCompile Include="ProtocolUSB\USBPacket.cpp"/>
-        <ClCompile Include="QuantizeParams.cpp"/>
-    </ItemGroup>
-    <ItemGroup>
-        <ClInclude Include="BaseEnums\Channels.h"/>
-        <ClInclude Include="BaseEnums\DataCheckEnums.h"/>
-        <ClInclude Include="BaseEnums\EdgePulseEnums.h"/>
-        <ClInclude Include="BaseEnums\LogerEnums.h"/>
-        <ClInclude Include="BaseEnums\ProtocolEnums.h"/>
-        <ClInclude Include="BaseEnums\QuantizedEnums.h"/>
-        <ClInclude Include="BaseHelper\CommonHelper.h"/>
-        <ClInclude Include="BaseHelper\Constants.h"/>
-        <ClInclude Include="BaseHelper\DataCheckHelper.h"/>
-        <ClInclude Include="BaseHelper\DecodeDataHelper.h"/>
-        <ClInclude Include="BaseHelper\Logger.h"/>
-        <ClInclude Include="DecodeEvent.h"/>
-        <ClInclude Include="DecodeResult.h"/>
-        <ClInclude Include="EdgePulse.h"/>
-        <ClInclude Include="EdgePulseData.h"/>
-        <ClInclude Include="ExportMethod.h"/>
-        <ClInclude Include="ProtocolDecodeBase.h"/>
-        <ClInclude Include="ProtocolRS232\Constants.h"/>
-        <ClInclude Include="ProtocolRS232\Protocol.RS232.Options.h"/>
-        <ClInclude Include="ProtocolRS232\RS232Params.h"/>
-        <ClInclude Include="ProtocolRS232\ProtocolRS232Enums.h"/>
-        <ClInclude Include="ProtocolRS232\RS232Decode.h"/>
-        <ClInclude Include="ProtocolRS232\RS232DecodeEvent.h"/>
-        <ClInclude Include="ProtocolRS232\RS232DecodeResult.h"/>
-        <ClInclude Include="ProtocolRS232\RS232Packet.h"/>
-        <ClInclude Include="ProtocolUSB\Constants.h"/>
-        <ClInclude Include="ProtocolUSB\ProtocolUSBEnums.h"/>
-        <ClInclude Include="ProtocolUSB\SYNC.h"/>
-        <ClInclude Include="ProtocolUSB\USBDecoder.h"/>
-        <ClInclude Include="ProtocolUSB\UsbDecodeEvent.h"/>
-        <ClInclude Include="ProtocolUSB\UsbDecodeOptions.h"/>
-        <ClInclude Include="ProtocolUSB\UsbDecodeResult.h"/>
-        <ClInclude Include="ProtocolUSB\USBPacket.h"/>
-        <ClInclude Include="QuantizeParams.h"/>
-    </ItemGroup>
-    <Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets"/>
-    <ImportGroup Label="ExtensionTargets">
-    </ImportGroup>
+  <ItemGroup Label="ProjectConfigurations">
+    <ProjectConfiguration Include="Debug|Win32">
+      <Configuration>Debug</Configuration>
+      <Platform>Win32</Platform>
+    </ProjectConfiguration>
+    <ProjectConfiguration Include="Release|Win32">
+      <Configuration>Release</Configuration>
+      <Platform>Win32</Platform>
+    </ProjectConfiguration>
+    <ProjectConfiguration Include="Debug|x64">
+      <Configuration>Debug</Configuration>
+      <Platform>x64</Platform>
+    </ProjectConfiguration>
+    <ProjectConfiguration Include="Release|x64">
+      <Configuration>Release</Configuration>
+      <Platform>x64</Platform>
+    </ProjectConfiguration>
+  </ItemGroup>
+  <PropertyGroup Label="Globals">
+    <VCProjectVersion>15.0</VCProjectVersion>
+    <ProjectGuid>{452B01D0-9E45-432F-904B-A81BB6C5B9C4}</ProjectGuid>
+    <Keyword>Win32Proj</Keyword>
+    <RootNamespace>ProtocolDecoder</RootNamespace>
+    <WindowsTargetPlatformVersion>10.0</WindowsTargetPlatformVersion>
+  </PropertyGroup>
+  <Import Project="$(VCTargetsPath)\Microsoft.Cpp.Default.props" />
+  <PropertyGroup>
+    <PreferredToolArchitecture>x64</PreferredToolArchitecture>
+  </PropertyGroup>
+  <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" Label="Configuration">
+    <ConfigurationType>DynamicLibrary</ConfigurationType>
+    <UseDebugLibraries>true</UseDebugLibraries>
+    <PlatformToolset>v143</PlatformToolset>
+    <CharacterSet>Unicode</CharacterSet>
+  </PropertyGroup>
+  <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" Label="Configuration">
+    <ConfigurationType>DynamicLibrary</ConfigurationType>
+    <UseDebugLibraries>false</UseDebugLibraries>
+    <PlatformToolset>v143</PlatformToolset>
+    <WholeProgramOptimization>true</WholeProgramOptimization>
+    <CharacterSet>Unicode</CharacterSet>
+  </PropertyGroup>
+  <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'" Label="Configuration">
+    <ConfigurationType>DynamicLibrary</ConfigurationType>
+    <UseDebugLibraries>true</UseDebugLibraries>
+    <PlatformToolset>v143</PlatformToolset>
+    <CharacterSet>Unicode</CharacterSet>
+  </PropertyGroup>
+  <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'" Label="Configuration">
+    <ConfigurationType>DynamicLibrary</ConfigurationType>
+    <UseDebugLibraries>false</UseDebugLibraries>
+    <PlatformToolset>v143</PlatformToolset>
+    <WholeProgramOptimization>true</WholeProgramOptimization>
+    <CharacterSet>Unicode</CharacterSet>
+  </PropertyGroup>
+  <Import Project="$(VCTargetsPath)\Microsoft.Cpp.props" />
+  <ImportGroup Label="ExtensionSettings">
+  </ImportGroup>
+  <ImportGroup Label="Shared">
+  </ImportGroup>
+  <ImportGroup Label="PropertySheets" Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
+    <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
+  </ImportGroup>
+  <ImportGroup Label="PropertySheets" Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
+    <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
+  </ImportGroup>
+  <ImportGroup Label="PropertySheets" Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">
+    <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
+  </ImportGroup>
+  <ImportGroup Label="PropertySheets" Condition="'$(Configuration)|$(Platform)'=='Release|x64'">
+    <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
+  </ImportGroup>
+  <PropertyGroup Label="UserMacros" />
+  <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
+    <LinkIncremental>true</LinkIncremental>
+  </PropertyGroup>
+  <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">
+    <LinkIncremental>true</LinkIncremental>
+    <LibraryPath>$(VC_LibraryPath_x64);$(WindowsSDK_LibraryPath_x64);C:\Program Files\Microsoft Visual Studio\2022\Community\VC\Tools\MSVC\14.37.32822\lib\x64</LibraryPath>
+  </PropertyGroup>
+  <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
+    <LinkIncremental>false</LinkIncremental>
+  </PropertyGroup>
+  <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'">
+    <LinkIncremental>false</LinkIncremental>
+  </PropertyGroup>
+  <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
+    <ClCompile>
+      <PrecompiledHeader>NotUsing</PrecompiledHeader>
+      <WarningLevel>Level3</WarningLevel>
+      <Optimization>Disabled</Optimization>
+      <SDLCheck>true</SDLCheck>
+      <PreprocessorDefinitions>WIN32;_DEBUG;CPPDYNAMICLIBRARYTEMPLATE_EXPORTS;_WINDOWS;_USRDLL;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+      <ConformanceMode>true</ConformanceMode>
+      <PrecompiledHeaderFile>pch.h</PrecompiledHeaderFile>
+    </ClCompile>
+    <Link>
+      <SubSystem>Windows</SubSystem>
+      <GenerateDebugInformation>true</GenerateDebugInformation>
+    </Link>
+  </ItemDefinitionGroup>
+  <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">
+    <ClCompile>
+      <PrecompiledHeader>NotUsing</PrecompiledHeader>
+      <WarningLevel>Level3</WarningLevel>
+      <Optimization>Disabled</Optimization>
+      <SDLCheck>true</SDLCheck>
+      <PreprocessorDefinitions>_DEBUG;CPPDYNAMICLIBRARYTEMPLATE_EXPORTS;_WINDOWS;_USRDLL;LIBMATH_EXPORTS;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+      <ConformanceMode>true</ConformanceMode>
+      <PrecompiledHeaderFile>pch.h</PrecompiledHeaderFile>
+      <LanguageStandard>stdcpp17</LanguageStandard>
+      <LanguageStandard_C>stdc17</LanguageStandard_C>
+    </ClCompile>
+    <Link>
+      <SubSystem>Windows</SubSystem>
+      <GenerateDebugInformation>true</GenerateDebugInformation>
+    </Link>
+  </ItemDefinitionGroup>
+  <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
+    <ClCompile>
+      <PrecompiledHeader>NotUsing</PrecompiledHeader>
+      <WarningLevel>Level3</WarningLevel>
+      <Optimization>MaxSpeed</Optimization>
+      <FunctionLevelLinking>true</FunctionLevelLinking>
+      <IntrinsicFunctions>true</IntrinsicFunctions>
+      <SDLCheck>true</SDLCheck>
+      <PreprocessorDefinitions>WIN32;NDEBUG;CPPDYNAMICLIBRARYTEMPLATE_EXPORTS;_WINDOWS;_USRDLL;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+      <ConformanceMode>true</ConformanceMode>
+      <PrecompiledHeaderFile>pch.h</PrecompiledHeaderFile>
+    </ClCompile>
+    <Link>
+      <SubSystem>Windows</SubSystem>
+      <EnableCOMDATFolding>true</EnableCOMDATFolding>
+      <OptimizeReferences>true</OptimizeReferences>
+      <GenerateDebugInformation>true</GenerateDebugInformation>
+    </Link>
+  </ItemDefinitionGroup>
+  <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'">
+    <ClCompile>
+      <PrecompiledHeader>NotUsing</PrecompiledHeader>
+      <WarningLevel>Level3</WarningLevel>
+      <Optimization>MaxSpeed</Optimization>
+      <FunctionLevelLinking>true</FunctionLevelLinking>
+      <IntrinsicFunctions>true</IntrinsicFunctions>
+      <SDLCheck>true</SDLCheck>
+      <PreprocessorDefinitions>NDEBUG;CPPDYNAMICLIBRARYTEMPLATE_EXPORTS;_WINDOWS;_USRDLL;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+      <ConformanceMode>true</ConformanceMode>
+      <PrecompiledHeaderFile>pch.h</PrecompiledHeaderFile>
+    </ClCompile>
+    <Link>
+      <SubSystem>Windows</SubSystem>
+      <EnableCOMDATFolding>true</EnableCOMDATFolding>
+      <OptimizeReferences>true</OptimizeReferences>
+      <GenerateDebugInformation>true</GenerateDebugInformation>
+    </Link>
+  </ItemDefinitionGroup>
+  <ItemGroup>
+    <ClInclude Include="BaseEnums\Channels.h" />
+    <ClInclude Include="BaseEnums\DataCheckEnums.h" />
+    <ClInclude Include="BaseEnums\EdgePulseEnums.h" />
+    <ClInclude Include="BaseEnums\LogerEnums.h" />
+    <ClInclude Include="BaseEnums\ProtocolEnums.h" />
+    <ClInclude Include="BaseEnums\QuantizedEnums.h" />
+    <ClInclude Include="BaseHelper\CommonHelper.h" />
+    <ClInclude Include="BaseHelper\Constants.h" />
+    <ClInclude Include="BaseHelper\DataCheckHelper.h" />
+    <ClInclude Include="BaseHelper\DecodeDataHelper.h" />
+    <ClInclude Include="BaseHelper\Logger.h" />
+    <ClInclude Include="DecodeEvent.h" />
+    <ClInclude Include="DecodeResult.h" />
+    <ClInclude Include="EdgePulse.h" />
+    <ClInclude Include="EdgePulseData.h" />
+    <ClInclude Include="ExportMethod.h" />
+    <ClInclude Include="ProtocolDecodeBase.h" />
+    <ClInclude Include="ProtocolRS232\Constants.h" />
+    <ClInclude Include="ProtocolRS232\Protocol.RS232.Options.h" />
+    <ClInclude Include="ProtocolRS232\RS232Params.h" />
+    <ClInclude Include="ProtocolRS232\ProtocolRS232Enums.h" />
+    <ClInclude Include="ProtocolRS232\RS232Decode.h" />
+    <ClInclude Include="ProtocolRS232\RS232DecodeEvent.h" />
+    <ClInclude Include="ProtocolRS232\RS232DecodeResult.h" />
+    <ClInclude Include="ProtocolRS232\RS232Packet.h" />
+    <ClInclude Include="ProtocolUSB\Constants.h" />
+    <ClInclude Include="ProtocolUSB\ProtocolUSBEnums.h" />
+    <ClInclude Include="ProtocolUSB\SYNC.h" />
+    <ClInclude Include="ProtocolUSB\USBDecoder.h" />
+    <ClInclude Include="ProtocolUSB\UsbDecodeEvent.h" />
+    <ClInclude Include="ProtocolUSB\UsbDecodeOptions.h" />
+    <ClInclude Include="ProtocolUSB\UsbDecodeResult.h" />
+    <ClInclude Include="ProtocolUSB\USBPacket.h" />
+    <ClInclude Include="QuantizeParams.h" />
+  </ItemGroup>
+  <ItemGroup>
+    <ClCompile Include="BaseHelper\commonhelper.cc" />
+    <ClCompile Include="BaseHelper\datacheckhelper.cc" />
+    <ClCompile Include="BaseHelper\decodedatahelper.cc" />
+    <ClCompile Include="BaseHelper\loger.cc" />
+    <ClCompile Include="decodeevent.cc" />
+    <ClCompile Include="decoderesult.cc" />
+    <ClCompile Include="dllmain.cc" />
+    <ClCompile Include="edgepulse.cc" />
+    <ClCompile Include="edgepulsedata.cc" />
+    <ClCompile Include="exportmethod.cc" />
+    <ClCompile Include="protocoldecodebase.cc" />
+    <ClCompile Include="ProtocolRS232\rs232decode.cc" />
+    <ClCompile Include="ProtocolRS232\rs232decodeevent.cc" />
+    <ClCompile Include="ProtocolRS232\rs232decoderesult.cc" />
+    <ClCompile Include="ProtocolRS232\rs232packet.cc" />
+    <ClCompile Include="ProtocolUSB\constants.cc" />
+    <ClCompile Include="ProtocolUSB\usbdecodeevent.cc" />
+    <ClCompile Include="ProtocolUSB\usbdecoder.cc" />
+    <ClCompile Include="ProtocolUSB\usbdecoderesult.cc" />
+    <ClCompile Include="ProtocolUSB\usbpacket.cc" />
+    <ClCompile Include="quantizeparams.cc" />
+  </ItemGroup>
+  <Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" />
+  <ImportGroup Label="ExtensionTargets">
+  </ImportGroup>
 </Project>

+ 1 - 0
output/make输出目录.txt

@@ -0,0 +1 @@
+lijinwen 24.6.24

二進制
x64/Debug/ProtocolDecoder.dll


二進制
x64/Debug/ProtocolDecoder.pdb


+ 61 - 0
自动生成make文件.py

@@ -0,0 +1,61 @@
+# -*- coding: utf-8 -*-
+"""
+Created on Mon Jun 24 11:03:47 2024
+
+@author: lijinwen
+
+@mail: ljwcoke@hotmail.com
+"""
+import os
+
+def scan_files(root_dir):
+    """
+    扫描指定目录下的所有 .cc 和 .h 文件
+    """
+    cc_files = []
+    h_files = []
+    
+    for root, dirs, files in os.walk(root_dir):
+        for file in files:
+            if file.endswith(".cc"):
+                cc_files.append(os.path.join(root, file))
+            elif file.endswith(".h"):
+                h_files.append(os.path.join(root, file))
+    
+    return cc_files, h_files
+
+def generate_makefile(cc_files, output_dir):
+    """
+    根据 .cc 文件生成 Makefile,并将所有输出文件放在指定的 output 目录
+    """
+    if not os.path.exists(output_dir):
+        os.makedirs(output_dir)
+
+    with open(os.path.join(output_dir, "Makefile"), "w") as f:
+        f.write("CXX = g++\n")
+        f.write("CXXFLAGS = -Wall -g -shared\n")  # 使用 -shared 标志生成共享库
+        
+        obj_files = [os.path.join("output", os.path.splitext(os.path.relpath(file, output_dir))[0] + ".o") for file in cc_files]
+        f.write("OBJS = " + " ".join(obj_files) + "\n\n")
+        
+        f.write("TARGET = output/ProtocolDecoder.dll\n\n")
+        
+        f.write("all: $(TARGET)\n\n")
+        
+        f.write("$(TARGET): $(OBJS)\n")
+        f.write("\t$(CXX) $(CXXFLAGS) -o $@ $^\n\n")
+        
+        for cc_file in cc_files:
+            obj_file = os.path.join("output", os.path.splitext(os.path.relpath(cc_file, output_dir))[0] + ".o")
+            f.write(f"{obj_file}: {os.path.relpath(cc_file, output_dir)}\n")
+            f.write(f"\t$(CXX) $(CXXFLAGS) -c {os.path.relpath(cc_file, output_dir)} -o {obj_file}\n\n")
+        
+        f.write("clean:\n")
+        f.write("\trm -f $(OBJS) $(TARGET)\n")
+
+if __name__ == "__main__":
+    root_dir = "./"  # 修改为你的项目路径
+    output_dir = "./"      # 修改为Makefile生成的路径
+
+    cc_files, h_files = scan_files(root_dir)
+    generate_makefile(cc_files, output_dir)