Win7下VS2010使用STLPort + VS2010编辑boost库

VS2010使用STLPort

STLport的下载地址

http://sourceforge.net/projects/stlport/

下载后,解压出文件。我的目录是 D:\STLport-5.2.1 。

右键计算机,属性,高级系统设置,环境,系统变量,编辑Path变量,添加;C:\Program Files\Microsoft Visual Studio 10.0\VC\bin。(我的路径是这样,分号是分隔符),确定。。

然后在 C:\Program Files\Microsoft Visual Studio 10.0\VC\bin 目录,编辑 vcvars32.bat 。

找到下面的一段,主要是添加STLport的include和lib路径,我的分别是 D:\STLport-5.2.1\stlport和D:\STLport-5.2.1\build\lib,注意分号,它是分隔符。

@rem INCLUDE

@rem -------

@if exist "%VCINSTALLDIR%ATLMFC\INCLUDE" set INCLUDE=%VCINSTALLDIR%ATLMFC\INCLUDE;%INCLUDE%;D:\STLport-5.2.1\stlport

@if exist "%VCINSTALLDIR%INCLUDE" set INCLUDE=%VCINSTALLDIR%INCLUDE;%INCLUDE%

@rem LIB

@rem ---

@if exist "%VCINSTALLDIR%ATLMFC\LIB" set LIB=%VCINSTALLDIR%ATLMFC\LIB;%LIB%;D:\STLport-5.2.1\build\lib

@if exist "%VCINSTALLDIR%LIB" set LIB=%VCINSTALLDIR%LIB;%LIB%

保存之后,双击 vcvars32.bat ,使我们的设置生效。

在 C:\Program Files\Microsoft Visual Studio 10.0\VC 目录下,运行 vcvarsall.bat 。

在 D:\STLport-5.2.1\stlport\stl 目录,编辑 _cstdlib.h。

将第158行的

inline _STLP_LONG_LONG  abs(_STLP_LONG_LONG __x) { return __x < 0 ? -__x : __x; }

这一行改为如下三行。(就是多了个if判断。)

#if !defined(_STLP_MSVC) || (_STLP_MSVC < 1600)

inline _STLP_LONG_LONG abs(_STLP_LONG_LONG __x) { return __x < 0 ? -__x : __x; }

#endif

保存。

打开开始菜单的Microsoft Visual Studio 2010下的Visual Studio Tools中Visual Studio Command Prompt(2010)。

切换到STLport的目录下

cd D:\STLport-5.2.1

d:

进行配置,可以通过 configure --help查看支持哪些配置。

configure msvc9

切换到lib目录

cd build/lib

然后是

nmake /f msvc.mak clean install

我测试的效果如下:

Setting environment for using Microsoft Visual Studio 2010 x86 tools

C:\Program Files\Microsoft Visual Studio 10.0\VC>cd D:\STLport-5.2.1

C:\Program Files\Microsoft Visual Studio 10.0\VC>d:

D:\STLport-5.2.1>configure msvc9

STLport Configuration Tool for Windows

Setting compiler: Microsoft Visual C++ 2008

Setting platform: Windows XP

Done configuring STLport.

Go to build/lib folder and type "nmake clean install" to build  and

install STLport to the "lib" and "bin" folders.

Go to build/test/unit folder and type nmake clean install to

build unit tests and install them in bin folder.

D:\STLport-5.2.1>cd build/lib

D:\STLport-5.2.1\build\lib>nmake /f msvc.mak clean install

————

等了几分钟就安装好了。

在D:\STLport-5.2.1目录多了几个文件夹,如bin和lib等。

把 D:\STLport-5.2.1\bin下 stlport.5.2.dll,stlportd.5.2.dll,stlportstld.5.2.dll,复制到 C:\Program Files\Microsoft Visual Studio 10.0\VC\bin 目录下,这样vc就能找到它了。

设置vc工程的include和lib目录了。

VS2010菜单,View,Property Manager,Debug|Win32,双击Microsoft.Cpp.Win32.user,Common Properties,VC++ directories。

在 Include Directories 下添加 D:\STLport-5.2.1\stlport 。

在 Library Directories 下添加 D:\STLport-5.2.1\lib 。

确定,通过这样的设置,以后建立的工程的VC++ Directories都有这些东西,就不用那么麻烦每个工程都进行设置了。

测试程序。

/*功能,Win7下vs2010使用STLport。

日期,2012年8月24日 星期五

环境,win7-32-vs2010

*/

#include 

#include 

usingnamespacestd;

intmain()

{

// crope是用来存储char字符的容器

crope crope1("Hello,");

crope crope2("STLport!");

cout << crope1 + crope2 << endl;

system("pause");

return0;

}

/*

输出效果:

Hello,STLport!

请按任意键继续. . .

*/


VS2010编辑boost库

(1)首先下载源代码:http://softlayer-dal.dl.sourceforge.NET/project/boost/boost/1.56.0/boost_1_56_0.zip

解压到某个目录,我解压到了D盘根目录:D:\boost_1_56_0

(2)生成bjam.exe可执行文件

用VS2010命令行

进入到到目录D:\boost_1_56_0,运行booststrap.bat得到:

这时在目录D:\boost_1_56_0生成了b2.exe、bjam.exe、project-config.jam文件。

(3)用bjam.exe编译

运行命令bjam stage --without-Python--toolset=msvc-10.0 --build-type=complete --stagedir="D:\boost_1_56_0\bin\vc10"  link=static runtime-link=shared threading=multi debug release

bjam可以参考http://blog.chinaunix.net/uid-22301538-id-3158997.html

stage表示只生成库(dll和lib),用install的话还会生成包含头文件的include目录。

toolset指定编译器,VS2010用msvc-10.0。

without/with表示不编译/编译哪些库。

stagedir,当使用stage时用stagedir,使用install用prefix,表示编译生成文件的路径。路径的命名最好和编译器相关,编译管理。

link指定生成动态链接库或静态链接库。生成动态链接库需使用shared方式,生成静态链接库需使用static方式。

runtime-link,动态/静态链接C/C++运行时库。有shared和static两种方式,这样runtime-link和link一共可以产生4种组合方式。

threading,单/多线程编译。

debug/release,编译debug/release版本。一般都是程序的debug版本对应库的debug版本,所以两个都编译。

差不多需要一小时,编译完成(中间会有警告)。

编译好后,在根目录会有个bin.v2文件夹,是编译过程中的临时文件夹,很大,可以手动删除。

(4)在VS中使用Boost库

新建工程后需要把Boost库包含到工程中,右键选择属性,在VC++目录的“包含目录”中添加Boost的根目录,在“库目录”添加刚刚编译生成的位置再加上路径lib。

之后包好头文件即可使用,例如一个多线程的测试

[cpp]view plaincopy

#include "boost/thread.hpp"

#include "iostream"

usingnamespacestd;

voidthreadFunc()

{

cout <<"This is a thread function"<< endl;

}

intmain()

{

boost::function func(threadFunc);

boost::threadt(func);

t.join();

return0;

}

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 194,242评论 5 459
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 81,769评论 2 371
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 141,484评论 0 319
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 52,133评论 1 263
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 61,007评论 4 355
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 46,080评论 1 272
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 36,496评论 3 381
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 35,190评论 0 253
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 39,464评论 1 290
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 34,549评论 2 309
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 36,330评论 1 326
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 32,205评论 3 312
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 37,567评论 3 298
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 28,889评论 0 17
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 30,160评论 1 250
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 41,475评论 2 341
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 40,650评论 2 335

推荐阅读更多精彩内容