首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使用带有Boost的多个STLport配置

使用带有Boost的多个STLport配置
EN

Stack Overflow用户
提问于 2014-07-16 13:01:08
回答 1查看 277关注 0票数 0

我使用Boost (1.54.0,Bjam2011.12.1)。OS=NT)在Windows开发项目上使用STLport (5.2.1)。我最初是从一个Windows平台SDK开始的,一切都进行得很顺利。但是现在我需要支持几个Windows平台SDK,每个SDK都有自己的系统标头和编译标志。

首先,我为这些平台(比如PLATFORM1和PLATFORM2)构建了PLATFORM2,并将STLport库放到了c:\lib\STLport-5.2.1\lib\PLATFORM1c:\lib\STLport-5.2.1\lib\PLATFORM2中。

然后,在user-config.jam中有:

代码语言:javascript
复制
using stlport : 5.2.1~PLATFORM1 : c:/lib/STLport-5.2.1/stlport : c:/lib/STLport-5.2.1/lib/PLATFORM1 ;
using stlport : 5.2.1~PLATFORM2 : c:/lib/STLport-5.2.1/stlport : c:/lib/STLport-5.2.1/lib/PLATFORM2 ;

然后,对于PLATFORM1,我通过运行带有stdlib=stlport-5.2.1~PLATFORM1标志的bjam.exe来构建Boost库,而BuildforPLATFORM2使用stdlib=stlport-5.2.1~PLATFORM2

但是bjam使用错误的STLport库路径作为PLATFORM2。例如,使用-n标志运行bjam将显示平台的以下链接命令(请注意第二个调用中错误的LIBPATH参数):

代码语言:javascript
复制
link.exe ... /out:"building\...\stdlib-stlport-5.2.1~PLATOFRM1\threading-multi\boost_xxx.dll" ... /LIBPATH:"c:\lib\STLport-5.2.1\lib\PLATFORM1"
link.exe ... /out:"building\...\stdlib-stlport-5.2.1~PLATOFRM2\threading-multi\boost_xxx.dll" ... /LIBPATH:"c:\lib\STLport-5.2.1\lib\PLATFORM1"

基本上,不管我传递给stdlib参数的版本是什么,总是使用来自user-config.jam的第一个指令。我做错了什么吗?使用不同的STLport二进制文件建立Boost环境的正确方法是什么?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2014-07-23 12:32:21

我通过使用一个特殊的变量来定义STLport库的位置来解决这个问题。基本上,我是这样做的。

user-config.jam中,我将所有STLport工具集初始化更改为一个:

使用stlport : 5.2.1 : c:/lib/STLport-5.2.1/stlport : c:/lib/STLport-5.2.1/lib/$(STLPORTLIBSUBDIR)

另外,为了查看变量,我在using指令之前添加了以下行:

局部STLPORTLIBSUBDIR = modules.peek : STLPORTLIBSUBDIR;

然后,要为PLATFORM1构建Boost库,我需要传递以下参数:

stdlib=stlport-5.2.1-sSTLPORTLIBSUBDIR=PLATFORM1

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/24781480

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档