Guile在linux上构建错误

时间:2017-04-22 06:21:05

标签: c++ c linux build guile

在构建guile时,我收到以下错误。错误与版本version 2.2.2,版本2.2.0和version 2.0.14

有关
fports.c: In function 'fport_input_waiting':
fports.c:626:10: error: variable 'pollfd' has initializer but incomplete type
   struct pollfd pollfd = { fdes, POLLIN, 0 };
fports.c:626:34: error: 'POLLIN' undeclared (first use in this function)
   struct pollfd pollfd = { fdes, POLLIN, 0 };
fports.c:626:17: error: storage size of 'pollfd' isn't known
   struct pollfd pollfd = { fdes, POLLIN, 0 };

我使用以下步骤构建包:

$ wget "$DOWNLOAD_URL"
$ tar xzf guile-{$VERSION}.tar.gz
$ cd guile-${VERSION}
$ ./configure --prefix=$HOME/.local --disable-static --disable-networking
$ make -j 12

[更新> 我已将libunistring-0.9.7gc-7.6.0安装到$HOME/.local,因此我使用了以下./configure命令,但没有更好结果

$ ./configure --prefix=$HOME/.local \
              --with-libunistring-prefix=$HOME/.local \
              --with-sysroot=$HOME/.local \
              --with-libgmp-prefix=$HOME/.local \
              --with-threads                              ## updated configure command

config.log

451 configure:8023: checking for poll.h
452 configure:8023: gcc -c -g -O2  conftest.c >&5
453 configure:8023: $? = 0
454 configure:8023: result: yes

更深入一点,我看到所需的文件poll.h似乎 在lib/poll.h

中定义

但我在poll.h中也有一个/usr/include/poll.h 重定向到/usr/include/x86_64-linux-gnu/sys/poll.h

还有libguile/poll.h重定向到libguile/__scm.h 这里是__scm.h,没有struct pollfd

的定义

配置包时似乎有问题。

我正在使用Ubuntu服务器。系统管理员路线可能需要一个 比往常多一点。所以我更喜欢建立和安装本地 封装

我正在尝试使用gcc-4.8

进行编译

有谁知道如何编译?

1 个答案:

答案 0 :(得分:0)

我在 centos 7 上遇到了同样的问题。 我将 #include <sys/poll.h> 添加到有问题的源文件 fports.c 中。

那么,./configure CFLAGS="-std=gnu11"