Visual c++ 如何使用SQLite合并创建共享Dll?
我可以下载源代码SQLite合并和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) 我就是这么做
如何生成x86和x64位的lib文件?我可以找到另一种解决方案。如何建立静态库? 然后将此库用于VisualStudio项目
我就是这么做的。首先,我可以看到您的问题被标记为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>