Visual c++ 如何使用SQLite合并创建共享Dll?

Visual c++ 如何使用SQLite合并创建共享Dll?,visual-c++,sqlite,mfc,Visual C++,Sqlite,Mfc,我可以下载源代码SQLite合并和 如何生成x86和x64位的lib文件?我可以找到另一种解决方案。如何建立静态库? 然后将此库用于VisualStudio项目 下载源代码 提取文件夹后,复制以下文件 在VisualStudio上创建项目 Win32->Win32项目 下一步->选择静态库->空项目 完成 打开项目文件夹并在项目文件夹上粘贴sqlite文件 在visual studio中右键单击项目文件夹,然后选择“添加现有项” 之后包括所有文件 构建后发布模式(x86和x64) 我就是这么做

我可以下载源代码SQLite合并和
如何生成x86和x64位的lib文件?

我可以找到另一种解决方案。如何建立静态库? 然后将此库用于VisualStudio项目

  • 下载源代码

  • 提取文件夹后,复制以下文件

  • 在VisualStudio上创建项目

  • Win32->Win32项目

  • 下一步->选择静态库->空项目

  • 完成

  • 打开项目文件夹并在项目文件夹上粘贴sqlite文件

  • 在visual studio中右键单击项目文件夹,然后选择“添加现有项”

  • 之后包括所有文件

  • 构建后发布模式(x86和x64)


  • 我就是这么做的。首先,我可以看到您的问题被标记为visual c++。编译器仍然不支持长文件(行数大于65535)。因此,您需要使用位于的split-sqlite3c.tcl脚本拆分sqlite源。请参阅我对SQLite用户组的问题和D Richard Hipp的回答:

    D.Richard Hipp的说明:

    得到一份 split-sqlite3c.tclscript和合并的副本。跑

    tclsh split-sqlite3c.tcl
    
    您可能需要从安装tclsh

    上面的脚本将生成以下文件:

    sqlite3-all.c
    sqlite3-1.c
    sqlite3-2.c
    sqlite3-3.c
    sqlite3-4.c
    sqlite3-5.c
    
    您使用sqlite3 all.c编译,它将包含所有其他文件。 --D.Richard Hipp drh,网址:sqlite.org

    请注意,您只需要为调试版本拆分文件。对于发布版本,只需使用来自合并的源代码

    我创建了一个VC项目,该项目根据配置(调试或发布)使用任意版本(拆分或不拆分)。以下是项目文件(vcxproj)来源:

    
    调试
    Win32
    释放
    Win32
    {A39019F1-A5BD-4A44-9BD4-D01391E975F1}
    Win32Proj
    SQLib3Am
    萨克
    萨克
    萨克
    萨克
    静态库
    真的
    多字节
    静态库
    假的
    真的
    多字节
    不使用
    三级系统
    残废
    WIN32_调试_LIB;%(预定义)
    窗户
    真的
    5
    三级系统
    不使用
    最大速度
    真的
    真的
    WIN32;恩德布格_LIB;%(预定义)
    窗户
    真的
    真的
    真的
    5
    真的
    真的
    真的
    真的
    真的
    真的
    真的
    真的
    真的
    真的
    真的
    真的
    
    要使用上述源,请创建一个文件夹,并在此文件夹中创建一个扩展名为vcxproj的空文件。将上述源代码放入此文件。将合并中的sqlite源复制到同一文件夹中。将tcl脚本复制到同一文件夹中,然后运行它以拆分文件。现在,用VisualStudio打开vcxproj文件(双击)并编译。你将拥有你的lib文件

    请注意,该文件适用于VC2010。但是您可以很容易地将其转换为更高版本

    <?xml version="1.0" encoding="utf-8"?>
    <Project DefaultTargets="Build" ToolsVersion="4.0" 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>
      </ItemGroup>
      <PropertyGroup Label="Globals">
        <ProjectGuid>{A39019F1-A5BD-4A44-9BD4-D01391E975F1}</ProjectGuid>
        <Keyword>Win32Proj</Keyword>
        <RootNamespace>SQLib3Am</RootNamespace>
        <SccProjectName>SAK</SccProjectName>
        <SccAuxPath>SAK</SccAuxPath>
        <SccLocalPath>SAK</SccLocalPath>
        <SccProvider>SAK</SccProvider>
      </PropertyGroup>
      <Import Project="$(VCTargetsPath)\Microsoft.Cpp.Default.props" />
      <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" Label="Configuration">
        <ConfigurationType>StaticLibrary</ConfigurationType>
        <UseDebugLibraries>true</UseDebugLibraries>
        <CharacterSet>MultiByte</CharacterSet>
      </PropertyGroup>
      <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" Label="Configuration">
        <ConfigurationType>StaticLibrary</ConfigurationType>
        <UseDebugLibraries>false</UseDebugLibraries>
        <WholeProgramOptimization>true</WholeProgramOptimization>
        <CharacterSet>MultiByte</CharacterSet>
      </PropertyGroup>
      <Import Project="$(VCTargetsPath)\Microsoft.Cpp.props" />
      <ImportGroup Label="ExtensionSettings">
      </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>
      <PropertyGroup Label="UserMacros" />
      <PropertyGroup />
      <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
        <ClCompile>
          <PrecompiledHeader>NotUsing</PrecompiledHeader>
          <WarningLevel>Level3</WarningLevel>
          <Optimization>Disabled</Optimization>
          <PreprocessorDefinitions>WIN32;_DEBUG;_LIB;%(PreprocessorDefinitions)</PreprocessorDefinitions>
        </ClCompile>
        <Link>
          <SubSystem>Windows</SubSystem>
          <GenerateDebugInformation>true</GenerateDebugInformation>
        </Link>
        <Lib>
          <MinimumRequiredVersion>5.00</MinimumRequiredVersion>
        </Lib>
      </ItemDefinitionGroup>
      <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
        <ClCompile>
          <WarningLevel>Level3</WarningLevel>
          <PrecompiledHeader>NotUsing</PrecompiledHeader>
          <Optimization>MaxSpeed</Optimization>
          <FunctionLevelLinking>true</FunctionLevelLinking>
          <IntrinsicFunctions>true</IntrinsicFunctions>
          <PreprocessorDefinitions>WIN32;NDEBUG;_LIB;%(PreprocessorDefinitions)</PreprocessorDefinitions>
        </ClCompile>
        <Link>
          <SubSystem>Windows</SubSystem>
          <GenerateDebugInformation>true</GenerateDebugInformation>
          <EnableCOMDATFolding>true</EnableCOMDATFolding>
          <OptimizeReferences>true</OptimizeReferences>
        </Link>
        <Lib>
          <MinimumRequiredVersion>5.00</MinimumRequiredVersion>
        </Lib>
      </ItemDefinitionGroup>
      <ItemGroup>
        <ClInclude Include="sqlite3.h" />
        <ClInclude Include="sqlite3ext.h" />
      </ItemGroup>
      <ItemGroup>
        <ClCompile Include="shell.c" />
        <ClCompile Include="sqlite3-1.c">
          <ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">true</ExcludedFromBuild>
          <ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">true</ExcludedFromBuild>
        </ClCompile>
        <ClCompile Include="sqlite3-2.c">
          <ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">true</ExcludedFromBuild>
          <ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">true</ExcludedFromBuild>
        </ClCompile>
        <ClCompile Include="sqlite3-3.c">
          <ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">true</ExcludedFromBuild>
          <ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">true</ExcludedFromBuild>
        </ClCompile>
        <ClCompile Include="sqlite3-4.c">
          <ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">true</ExcludedFromBuild>
          <ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">true</ExcludedFromBuild>
        </ClCompile>
        <ClCompile Include="sqlite3-5.c">
          <ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">true</ExcludedFromBuild>
          <ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">true</ExcludedFromBuild>
        </ClCompile>
        <ClCompile Include="sqlite3-all.c">
          <ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">true</ExcludedFromBuild>
        </ClCompile>
        <ClCompile Include="sqlite3.c">
          <ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">true</ExcludedFromBuild>
        </ClCompile>
      </ItemGroup>
      <ItemGroup>
        <None Include="sqlite3.def" />
      </ItemGroup>
      <Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" />
      <ImportGroup Label="ExtensionTargets">
      </ImportGroup>
    </Project>