【发布时间】:2019-12-07 01:26:48
【问题描述】:
我正在尝试构建带有 ICU 支持的 boost 1.70。为此,我前段时间构建了 ICU(版本 61.1)。在我们的内部系统中,我有这种 ICU 的目录结构,我无法快速更改它,因为有几个组件使用这个库并期望来自这个目录结构的库:
...\icu\lib (for x86 version of lib files)
...\icu\bin (for x86 version of dll files)
...\icu\lib64 (for x64 version of lib files)
...\icu\bin64 (for x64 version of dll files)
...\icu\include (include headers files for icu)
所以,在建好ICU之后,我把文件放到了各自的目录中。
现在我想构建支持ICU的boost 1.70,所以我在一个自写的批处理脚本中使用了这个构建命令(这里以32位为例):
set "PATH_TO_ICU=.....\icu"
...
if not exist "%PATH_TO_ICU%" (
echo "Error: Could not find path to icu. Was looking in '%PATH_TO_ICU%'"
pause
exit /b 1
)
...
:: debug 32bit / static
b2 --build-type=complete toolset=msvc-14.1 variant=debug threading=multi link=static -sICU_PATH="%PATH_TO_ICU%" -sICU_LINK="%PATH_TO_ICU%\lib" include="%PATH_TO_ICU%\include"
但是构建期间的输出向我展示了这一点
- has_icu builds : no
...
- icu : no
- icu (lib64) : no
附加信息:我正在使用 Visual Studio 2017 构建它。
那么,我在这里缺少什么?
编辑
我查看了文件 boost_root\bin.v2\config.log 并看到了这种行
Line 132: LINK : fatal error LNK1181: cannot open input file '....\icu\lib.obj'
这也许可以解释为什么 b2 无法正确看到 ICU。
【问题讨论】:
-
我遇到了几乎完全相同的问题(只是 Boost 和 ICU 的版本略有不同)。你解决过这个问题吗?
标签: boost visual-studio-2017 icu b2