首页 技术 正文
技术 2022年11月12日
0 收藏 892 点赞 2,828 浏览 1964 个字

在windows 环境中,一般比较推荐的打包软件的方式是,将自己所需要的共享库放在软件自己的文件夹中,并且避免与其它的软件共用。除非是微软的官方组件,比如微软自家的VC Runtime。

Boost库在windows 平台的使用,一般也是推荐直接静态链接,而非是使用动态库。并且 Boost 库时如些强大,以致于你使用了之后,不需要手动在 VS 中配置你需要链接的库文件,而是由头文件搞定这一切,除非你用至的Boost库用到了微软自家的库,但是默认这个库又没有配置到项目中。

废话就说到这里,下面给出具体的操作过程。

第一步,当然是构建我们的Boost库了

打开VS的命令行(在开始菜单里,我这里是中文版的,名称是 “适用于 VS 2017 的 x64 本机工具命令提示”),进入到我们的Boost库主目录(下载好的Boost库,解压后的目录)。

首先构建Boost自己的构建工具 b2和bjam 等,然后再调用构建工具来完成构建,为了方便,我们直接写个批处理脚本吧。

 bootstrap
b2 -j %NUMBER_OF_PROCESSORS% toolset=msvc-14.1 address-model=32 threading=multi --build-dir=x86_build --stagedir=stage_x86
b2 -j %NUMBER_OF_PROCESSORS% toolset=msvc-14.1 address-model=64 threading=multi --build-dir=x64_build --stagedir=stage_x64

当然,你也可以直接手输上面的命令行完成构建。构建结束后,我们的 boost 构建目录下会多出两个目录  stage_x86 和 stage_x64 ,这两个目录里就是我们需要的库,当然在windows平台上默认只生成静态库,如果你需要动态库,可以使用 b2的  –build-type 参数来指定。

第二步,将我们的Boost库文件和头文件放到指定目录

我这里以放到 D:\libs\boost_1_65_1  目录为示例进行操作,目录结构如下

D:\libs\boost_1_65_1
|
|
+include
| |
| +boost(boost头文件)
|
|
+lib
|
+msvc-141
|
+x86(编译好的x86库)
|
+x64(编译好的x64库)

第三步,配置VS的C++属性页

这里我们只配置用户属性页,而且只配置桌面应用

打开命令行,创建目录(也许已存在,创建只是为了保证存在)

md %LOCALAPPDATA%\Microsoft\MSBuild\v4.0
cd %LOCALAPPDATA%\Microsoft\MSBuild\v4.0
start .

然后你会发现弹出了一个文件夹。里面可能会有几个文件,也许是空的,不过不要紧,我们想要的是这么两个文件,对应的改一下就好,没有就自己创建。

Microsoft.Cpp.Win32.user.props 和 Microsoft.Cpp.x64.user.props

两个文件的内容默认是一样的,我们修改成如下的样子

<?xml version="1.0" encoding="utf-8"?>
<Project DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<ImportGroup Label="PropertySheets">
</ImportGroup>
<PropertyGroup Label="UserMacros">
<BOOST_SDK_ROOT>D:\libs\boost_1_65_1</BOOST_SDK_ROOT>
</PropertyGroup>
<PropertyGroup>
<IncludePath>$(BOOST_SDK_ROOT)\include;$(IncludePath)</IncludePath>
<LibraryPath>$(BOOST_SDK_ROOT)\lib\msvc-$(PlatformToolsetVersion)\$(PlatformTarget)\;$(LibraryPath)</LibraryPath>
</PropertyGroup>
<ItemDefinitionGroup />
<ItemGroup>
<BuildMacro Include="BOOST_SDK_ROOT">
<Value>$(BOOST_SDK_ROOT)</Value>
<EnvironmentVariable>true</EnvironmentVariable>
</BuildMacro>
</ItemGroup>
</Project>

第四步,试一个?

自己写Hello World!吧,我懒……

相关推荐
python开发_常用的python模块及安装方法
adodb:我们领导推荐的数据库连接组件bsddb3:BerkeleyDB的连接组件Cheetah-1.0:我比较喜欢这个版本的cheeta…
日期:2022-11-24 点赞:878 阅读:9,489
Educational Codeforces Round 11 C. Hard Process 二分
C. Hard Process题目连接:http://www.codeforces.com/contest/660/problem/CDes…
日期:2022-11-24 点赞:807 阅读:5,904
下载Ubuntn 17.04 内核源代码
zengkefu@server1:/usr/src$ uname -aLinux server1 4.10.0-19-generic #21…
日期:2022-11-24 点赞:569 阅读:6,737
可用Active Desktop Calendar V7.86 注册码序列号
可用Active Desktop Calendar V7.86 注册码序列号Name: www.greendown.cn Code: &nb…
日期:2022-11-24 点赞:733 阅读:6,489
Android调用系统相机、自定义相机、处理大图片
Android调用系统相机和自定义相机实例本博文主要是介绍了android上使用相机进行拍照并显示的两种方式,并且由于涉及到要把拍到的照片显…
日期:2022-11-24 点赞:512 阅读:8,128
Struts的使用
一、Struts2的获取  Struts的官方网站为:http://struts.apache.org/  下载完Struts2的jar包,…
日期:2022-11-24 点赞:671 阅读:5,290