分享
 
 
 

STLPort的编译和安装?

王朝干货·作者佚名  2011-12-17
窄屏简体版  字體: |||超大  

STLPort的编译和安装 - 王猛 (HeartIcy@163.com)

前言

STLPort是一套C++模板库,BCB6集成的正是此库的早期版本。虽然STLPort并没有100%完整支援

ANSI标准的规定,但是从宝蓝肯采用此模版库作为标准配备可见其自有独到一面!现在我谈一下

我编译以及使用此开发库的感受。不过我要说明的是,我是一个C程序设计专家而不是C++,我的

体会或者说心得仅仅是如何在项目中使用并将其应用到项目中。

编译

环境配置

STLPort支持多平台下的常用编译器,可是说是包罗万象!在Windows下编译STLPort你要先注意三

点:1 修改vc98/bin下的vcvars32.bat ;2 不要试图使用 Platform SDK ;3 准备好调试符号!

为什么?请听我慢慢道来。

关于第一点,你需要根据你的平台修改,vcvars32.bat从命令行下进行编译。当然,你可以参照

makefile文档自己制作工程文件在IDE中编译,不过STLPort本身没这个文件!

包含路径在 set INCLUDE = 中追加STLPort目录下的stlport目录,例如:

set INCLUDE=F:\STLport\stlport;%MSVCDir%\ATL\INCLUDE;%MSVCDir%\INCLUDE;%MSVCDir%\

MFC\INCLUDE;%INCLUDE%

包含库路径在 set LIB= 中追加STLPort目录下的lib目录,例如:

set LIB=F:\STLport\lib;%MSVCDir%\LIB;%MSVCDir%\MFC\LIB;%LIB%

好了,第一点完成了!

关于第二点,大家注意到了我并没有包含进Platform SDK的更新过来,事实上我的机器中安装有此更

新的2003年2月版(支持Win2003新特性!)。我坚持不包含进来的原因是,在Platform SDK中更新过的部分文件编译STLPort时无法正常工作。也不奇怪,微软这会儿正忙着猛推.NET来着!切忌不要用!

关于第三点,如果没有调试符号文件在编译DEBUG版本的时候会给你一个Link错误提示 :( 不过,即

使没有再执行一边nmake仍然可以输出文件,不过这样出来的文件能不能正常工作我就不知道了!

当你完成了上述三步之后,你日后可以继续用这个环境在命令行下编译你的STLPort程序。

makefile文件

在STLPort的src目录下存放了众多.mak文件,这些文件就是STLPort为其多平台多编译器支持所准备

的杰作。我们使用VC来编译可以根据编译器的版本选择不同的.mak文件:

VC.Net使用vc7.mak,VC5使用vc5.mak(STLPort官方测试支援),VC6的选择就相对多了一点,有三

个文件可以选择,用NT系列的选择vc6t.mak,用98之类的选择vc6.mak,需要获得unicode支援的就用

vc6-unicode.mak,vc6-unicode.mak是针对98编写的,虽然NT可以直接套用但是我自己还是小小的修

改了一下:将!INCLUDE vc_common.mak 替换为!INCLUDE vc_commont.mak。其实你如果你懂得规则完

全可以根据自己的需要编写一个.mak前端文件出来,STLPort为了方便自行编写makefile文件的开发人

员提供了一个名为build-tempinc-xlc.mk的模版文件。

用命令行在src目录下,执行copy 你选择的.mak makefile, 偷懒的在这个时候 nmake install就可

以连编译到安装一次解决!不过,还是多学点东西好,我继续讲我的。如果你在link它的DEBUG编译时

出现了link错误,不要灰心你可以再执行一边刚才的命令(强烈不推荐!)或者自定义编译。

** 这一步你不copy直接 nmake -f xxx.mak 一样可以。

自定义编译

比如我讨厌Debug版,所以我就直接编译release。方法很简单,如果要编译一个静态库可以用:

nmake release_static

要编译一个动态库则用

nmake release_dynamic

注意了,自定义编译没有现成的install来用,要自己改makefile,太麻烦了。

安装

如果你是自定义编译那么必须看一下这里。

1 STLPort所产生的动态库DLL复制到system32(NT)或者system(98),目录下。

2 将stlport子目录复制到vc的include目录下。

3 将.lib .exp文件复制到vc的lib目录下。

如果你不打算删除stlport的源代码目录第2、3步是可选的,因为vcvars32.bat已经做了定位。否则你

最好还是顺便修改一下vcvars32.bat。

项目中的应用

1 无论怎样stlport必须处于INCLUDE目录的第一位。

2 动态库编译link stlport_vc6.lib 静态link stlport_vc6_static.lib。

3 如果使用动态库记得copystlport_????.dll到发布的程序中,否则,嘿嘿!你知道的!

完毕?

小贴士:① 若网友所发内容与教科书相悖,请以教科书为准;② 若网友所发内容与科学常识、官方权威机构相悖,请以后者为准;③ 若网友所发内容不正确或者违背公序良俗,右下举报/纠错。
 
 
 
免责声明:本文为网络用户发布,其观点仅代表作者个人观点,与本站无关,本站仅提供信息存储服务。文中陈述内容未经本站证实,其真实性、完整性、及时性本站不作任何保证或承诺,请读者仅作参考,并请自行核实相关内容。
2023年上半年GDP全球前十五强
 百态   2023-10-24
美众议院议长启动对拜登的弹劾调查
 百态   2023-09-13
上海、济南、武汉等多地出现不明坠落物
 探索   2023-09-06
印度或要将国名改为“巴拉特”
 百态   2023-09-06
男子为女友送行,买票不登机被捕
 百态   2023-08-20
手机地震预警功能怎么开?
 干货   2023-08-06
女子4年卖2套房花700多万做美容:不但没变美脸,面部还出现变形
 百态   2023-08-04
住户一楼被水淹 还冲来8头猪
 百态   2023-07-31
女子体内爬出大量瓜子状活虫
 百态   2023-07-25
地球连续35年收到神秘规律性信号,网友:不要回答!
 探索   2023-07-21
全球镓价格本周大涨27%
 探索   2023-07-09
钱都流向了那些不缺钱的人,苦都留给了能吃苦的人
 探索   2023-07-02
倩女手游刀客魅者强控制(强混乱强眩晕强睡眠)和对应控制抗性的关系
 百态   2020-08-20
美国5月9日最新疫情:美国确诊人数突破131万
 百态   2020-05-09
荷兰政府宣布将集体辞职
 干货   2020-04-30
倩女幽魂手游师徒任务情义春秋猜成语答案逍遥观:鹏程万里
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案神机营:射石饮羽
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案昆仑山:拔刀相助
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案天工阁:鬼斧神工
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案丝路古道:单枪匹马
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:与虎谋皮
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:李代桃僵
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:指鹿为马
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案金陵:小鸟依人
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案金陵:千金买邻
 干货   2019-11-12
 
推荐阅读
 
 
 
>>返回首頁<<
 
靜靜地坐在廢墟上,四周的荒凉一望無際,忽然覺得,淒涼也很美
© 2005- 王朝網路 版權所有