0

我正在尝试在 Windows 7 64 位的 Cygwin 下编译 boost 1.50.0。

我运行命令:

./bootstrap.sh –prefix=boost/

我回来了:

Building Boost.Build engine with toolset gcc...
Failed to build Boost.Build build engine
Consult 'bootstrap.log' for more details

这是日志:

###
### Using 'gcc' toolset.
###
rm -rf bootstrap
mkdir bootstrap
gcc -o bootstrap/jam0 command.c compile.c constants.c debug.c function.c glob.c         hash.c hdrmacro.c headers.c jam.c jambase.c jamgram.c lists.c make.c make1.c object.c option.c output.c parse.c pathunix.c regexp.c rules.c scan.c search.c subst.c timestamp.c variable.c modules.c strings.c filesys.c builtins.c pwd.c class.c native.c md5.c w32_getreg.c modules/set.c modules/path.c modules/regex.c modules/property-set.c modules/sequence.c modules/order.c execunix.c fileunix.c
function.c: In function ‘var_edit_shift’:
function.c:653:13: warning: ‘cygwin_conv_to_win32_path’ is deprecated (declared at /usr/include/sys/cygwin.h:36) [-Wdeprecated-declarations]
./bootstrap/jam0 -f build.jam --toolset=gcc --toolset-root= clean
./build.sh: line 13:  8144 Segmentation fault      $@

可能是什么问题呢?如何解决?

4

2 回答 2

1

boost不是一个简单的构建包,还需要一些构建系统和代码补丁才能构建和正常工作。(有关详细信息,请参阅Cygwin Ports git。)我强烈建议您改用libboost-develCygwin 发行版中的包。

于 2013-07-03T04:38:40.317 回答
1

该错误表明cygwin_conv_to_win32_path已弃用。

function.c:653:13: 警告: 'cygwin_conv_to_win32_path' 已弃用(在 /usr/include/sys/cygwin.h:36 声明)[-Wdeprecated-declarations]

历史:该功能cygwin_conv_to_win32_path在 Cygwin 1.x 中受支持,在 2.x 版本中已弃用。2.x 提供了替换 APIcygwin_conv_path

如何解决? 如下为这些不推荐使用的方法添加定义,它应该可以解决问题(我做了同样的事情并且能够在 cygwin 上构建 boost 库)

void cygwin_conv_to_win32_path(const char *posix, char * win32)
{
    /* Get the size */
    ssize_t size = cygwin_conv_path( CCP_POSIX_TO_WIN_A, posix, NULL, 0);
    cygwin_conv_path( CCP_POSIX_TO_WIN_A, posix, win32, size);
}

void cygwin_conv_to_posix_path (const char *win32, char * posix)
{
    /* Get the size */
    ssize_t size = cygwin_conv_path( CCP_WIN_A_TO_POSIX, win32, NULL, 0);
    cygwin_conv_path(  CCP_WIN_A_TO_POSIX , win32, posix, size);
}
于 2016-10-21T12:10:09.597 回答