bjam.exe 各个参数(转)
原文转自 http://m.blog.csdn.net/article/details?id=42265605
bjam.exe stage --toolset=msvc-12.0 --without-graph --without-graph_parallel --without-math --without-mpi --without-serialization --without-wave --without-test --without-program_options --without-serialization --without-signals --stagedir="vc12_x86" link=static runtime-link=shared threading=multi debug release
#toolset:指定编译器,可选的如borland、gcc、msvc(VC6)、msvc-10.0(VS20010)
#vs2008 : msvc-9.0,vs2010 : msvc-10.0, VS2012、VS2013是msvc-12.0
#stagedir:表示编译生成文件的路径。
#build-dir:编译生成的中间文件的路径。这个本人这里没用到,默认就在根目录(D:\boost\boost_1_57_0)下,目录名为bin.v2(删掉),等编译完成后可将这个目录全部删除(没用了),所以不需要去设置。
#without/with:选择不编译/编译哪些库。
#address-model:要有address-model=64属性,如果没有这个属性的话,会默认生成32位的平台库,加入这个选项才能生成64位的DLL。
#threading:单/多线程编译。一般都写多线程程序,当然要指定multi方式了;如果需要编写单线程程序,那么还需要编译单线程库,可以使用single方式。
#静态库版link=shared,动态库link=shared
#runtime-link:动态/静态链接C/C++运行时库。同样有shared和static两种方式,这样runtime-link和link一共可以产生4种组合方式,各人可以根据自己的需要选择编译。一般link只选static的话,只需要编译2种组合即可,即link=static runtime-link=shared和link=static runtime-link=static。
#debug/release:编译debug/release版本。一般都是程序的debug版本对应库的debug版本,所以两个都编译。
#64位编译:
从开始菜单启动Visual Studio 2013的vs2013 x64兼容工具命令行,然后转到boost根文件夹,运行bootstrap.bat生成x64版的bjam.exe。
在编译命令中加入address-model=64属性
#还有人总结windows下boost库的命名特点:
link=static runtime-link=static 得到 libboostxxxxx.lib
link=shared runtime-link=shared 得到 boostxxxx.lib 和 boostxxxx.dll
由以上的文件夹层次结构基本就可以得出结论:
1、以“lib”开头的是“link-static”版本的,而直接以“boost”开头的是“link-shared”版本的。
2、有“d”的为debug版本,没有的则是release版本。
3、有“s”的为“runtime-link-static”版本,没有的则是“runtime-link-shared”版本。
4、有“mt”的为“threading-multi”版本,没有的则是“threading-single”版本。
#设定vs2013环境。
(在项目-->右键属性-->C/C++)附加包含目录:如:F:/boost_1.57_0
链接器:附加库目录:(编译生成文件的路径)如:F:/boost_1.57_0/stage/bin
附加依赖项:(项目所需编译库)
如果编译成Debug则包含:libboost_regex-vc120-mt-gd-1_57.lib(举例)
如果编译成Release则包含:libboost_regex-vc120-mt-1_57.lib
或者添加#pragma comment(lib, "libboost_regex-vc120-mt-gd-1_57.lib")附加链接库
#define BOOST_LIB_DIAGNOSTIC
它可以让VC在编译时的output窗口中输出程序具体链接了哪些boost库以及链接顺序。
测试一下:
#include "stdafx.h"
#include <boost/regex.hpp>
#include <boost/asio.hpp>
#include <iostream>
#pragma comment(lib, "libboost_date_time-vc120-mt-gd-1_57.lib")
#pragma comment(lib, "libboost_system-vc120-mt-gd-1_57.lib") int _tmain(int argc, _TCHAR* argv[])
{
boost::regex reg("[0-9]+");//lib库在项目附加依赖项中添加了
std::cout << boost::regex_match("123", reg) << std::endl;
boost::asio::io_service io;
system("PAUSE");
return 0;
}
第一次编译配置boost库成功,记录一下。开始boost之旅吧!
bjam.exe 各个参数(转)的更多相关文章
- 在C#中调用另一个应用程序或命令行(.exe 带参数)<zz>
在.net中使用system.diaglostics.Process可以用来调用另一个命令行或程序. using System.Diagnostics; 如果是dos Proces ...
- 关于exe文件传递参数方法
段代码手工折叠 {$REGION 'Designer Managed Code'} ............ {$ENDREGION} 昨天同事问到,delphi里exe文件如何传递参数? 因为手头装 ...
- Batch批处理 间断向EXE发送参数
参考:https://blog.csdn.net/wjz1029/article/details/45044033 找了很久的一种方法: 怎样向一个EXE 发送一个参数,得到反馈后,再向EXE发送一个 ...
- ajaxmin.exe 命令参数
这个工具用来压缩JS和CSS文件的,可去掉多余空格,换行,还修改函数名变得难以读取等. 下载这工具,下载之后是一个.msi文件可以安装.安装之后在命令行里操作即可 (下载地址和文档) http://a ...
- CommandLineToArgvW调EXE传入参数【转载】
#include <afxwin.h> // TODO: add your code here LPWSTR *szArglist = NULL; ; szArglist = Comma ...
- WPF应用程序exe接收参数
using System;using System.ServiceProcess; namespace GoShopService{ public partial class Service1 ...
- cmd.exe启动参数详解
https://blog.csdn.net/moonhillcity/article/details/53039763 各个系统中打开文件的命令 "windows系统: cmd " ...
- vb.net winform exe 接参数
找到如下文件 -\WindowsApplication1\My Project\Application.Designer.vb <Global.System.Diagnostics.Debugg ...
- BOOST编译方法
Windowsbjam --toolset=msvc-9.0 --prefix=C:\vc9_boost\vc9 --build-type=complete link=static threading ...
随机推荐
- 十六、MySQL LIKE 子句
MySQL LIKE 子句 我们知道在 MySQL 中使用 SQL SELECT 命令来读取数据, 同时我们可以在 SELECT 语句中使用 WHERE 子句来获取指定的记录. WHERE 子句中可以 ...
- k8s的ingress资源简述
ingress controller是独立与controller-manager的Ingress的主要作用是可以利用nginx,haproxy,envoy,traefik等负载均衡器来暴露集群内部服务 ...
- 树莓派下ubuntu-mate中ssh服务的安装与开机后自启动
ssh程序分为客户端程序openssh-client和服务端程序openssh-server. 如果需要ssh登陆到别的电脑,需要安装openssh-client,该程序ubuntu是默认安装的.而如 ...
- Django基础之数据库与ORM
一.数据库配置 1.django默认支持sqlite,mysql, oracle,postgresql数据库. django默认使用sqlite的数据库,默认自带sqlite的数据库驱动 , 引擎名称 ...
- IOS开发学习笔记017-第一个IOS应用
第一个IOS应用程序,就从最简单的开始吧. 1.先了解一下开发环境,Xcode的相关组成 2.还有模拟器 3.运行与停止按钮 4.新建一个工程 5.看看main函数里都有啥 6.现在来添加一个控件 1 ...
- CTF 两道web整数溢出题目(猫咪银行和ltshop)
①猫咪银行: (2018中科大hackgame) 一开始给十个CTB,而flag需要20个CTB,我们需要理财赚够20个. 理财是只能买入TDSU才可以获得收益.我们先上来直接把CTB全部换成TDSU ...
- phpmyadmin漏洞利用general_log和general_log_file拿权限
我们如果知道phpmyadmin和网站的绝对路径后,可以利用into outfile写马拿到权限,但是吧有新版本的mysql和一些系统设置的问题这个函数受到了secure-file-priv这个的影响 ...
- Python 拓展之迭代器
写在之前 今天来讲讲「迭代器」的内容,其实已经拖了好多天了,感觉再不写就要忘记了.「迭代」相信对你来说已经不陌生了,我前面曾经专门用一篇文章来讲,如果你已经没有什么印象的话,就再点进去看看(零基础学习 ...
- [oldboy-django][4python面试]有关yield那些事
1 yield 在使用send, next时候的区别(举例m = yield 5) 无论send,next首先理解m = yield 5 是将表达式"yield 5 "的结果返回给 ...
- 爬虫:Scrapy1
Python 2.7 npm install scrapy 步骤: 创建一个 Scrapy 项目 定义提取的 Item 编写爬取网站的 Spider 并提取 Item 编写 Item Pipeline ...