我正在尝试构建libboost 1.70.0。
我已经编译了ICU4C,并在我的$HOME/usr
上本地安装了它。为了帮助找到它,我也建立了icu-config
。
我的$HOME/usr/lib
环境变量中有LD_LIBRARY_PATH
,而我的$HOME/usr/bin
中有PATH
。
我正在这样运行bootstrap
:
./bootstrap.sh --with-icu=$HOME/usr/ --prefix=$HOME/usr/
输出表明将启用icu。并且提供的路径以bjam配置保存。
稍后,当运行
./b2 --reconfigure
它说将不使用ICU:
- bzip2 : yes
- lzma : no
- zstd : no
- iconv (libc) : yes
- icu : no
- icu (lib64) : no
- native-atomic-int32-supported : yes
尽管不是很关键,但有趣的是它甚至在本地安装时也找不到lzma。
我有点迷茫,不知道我在想什么。重新编译了ICU几次,尝试了我在网上找到的其他方法,但没有任何效果。欢迎任何帮助。
Config.log显示,
In file included from /home/ambs/usr/include/unicode/uversion.h:30:0,
from libs/regex/build/has_icu_test.cpp:12:
/home/ambs/usr/include/unicode/umachine.h:340:13: error: char16_t does not name a type
typedef char16_t UChar;
^
In file included from libs/regex/build/has_icu_test.cpp:12:0:
/home/ambs/usr/include/unicode/uversion.h:173:55: error: UChar does not name a type
u_versionFromUString(UVersionInfo versionArray, const UChar *versionString);
^
以及其他类似错误。我(嗯,我想是)正在使用相同的编译器进行编译(该编译器也不在标准路径中,但是在我的路径中)。
答案 0 :(得分:0)
虽然我不理解为什么bjam无法正确检测到编译器(如果我使用的话)
./bjam cxxflags='-std=c++11'
然后,不仅我有ICU,因为我检测到C ++ 11功能。