我在 Solaris 10 机器(64 位)上构建 glib-2.26.1 时遇到了问题。无论我怎么努力,构建都以同样的方式失败。我尝试使用 Sun Studio 编译器 gcc (SFW),但无济于事。
当我编译时出现以下错误:
[root@foo glib-2.26.1]$ export CC=/opt/solstudio12.2/bin/cc
[root@foo glib-2.26.1]$ export CFLAGS="-m64"
...configure goes normally...
[root@foo glib-2.26.1]$ make
...snip...
source='gatomic.c' object='gatomic.lo' libtool=yes \
DEPDIR=.deps depmode=none /bin/bash ../depcomp \
/bin/bash ../libtool --tag=CC --mode=compile /opt/solstudio12.2/bin/cc -DHAVE_CONFIG_H -I. -I.. -I.. -I../glib -I../glib -I.. -DG_LOG_DOMAIN=\"GLib\" -DG_DISABLE_CAST_CHECKS -DG_DISABLE_DEPRECATED -DGLIB_COMPILATION -DPCRE_STATIC -DG_DISABLE_SINGLE_INCLUDES -D_REENTRANT -D_PTHREADS -m64 -c -o gatomic.lo gatomic.c
libtool: compile: /opt/solstudio12.2/bin/cc -DHAVE_CONFIG_H -I. -I.. -I.. -I../glib -I../glib -I.. -DG_LOG_DOMAIN=\"GLib\" -DG_DISABLE_CAST_CHECKS -DG_DISABLE_DEPRECATED -DGLIB_COMPILATION -DPCRE_STATIC -DG_DISABLE_SINGLE_INCLUDES -D_REENTRANT -D_PTHREADS -m64 -c gatomic.c -KPIC -DPIC -o .libs/gatomic.o
"gatomic.c", line 885: warning: no explicit type given
"gatomic.c", line 885: syntax error before or at: *
"gatomic.c", line 885: warning: old-style declaration or incorrect type for: g_atomic_mutex
"gatomic.c", line 906: warning: implicit function declaration: g_mutex_lock
"gatomic.c", line 909: warning: implicit function declaration: g_mutex_unlock
"gatomic.c", line 1155: warning: implicit function declaration: g_mutex_new
"gatomic.c", line 1155: warning: improper pointer/integer combination: op "="
cc: acomp failed for gatomic.c
make[4]: *** [gatomic.lo] Error 1
make[4]: Leaving directory `/root/glib-2.26.1/glib'
make[3]: *** [all-recursive] Error 1
make[3]: Leaving directory `/root/glib-2.26.1/glib'
make[2]: *** [all] Error 2
make[2]: Leaving directory `/root/glib-2.26.1/glib'
make[1]: *** [all-recursive] Error 1
make[1]: Leaving directory `/root/glib-2.26.1'
make: *** [all] Error 2
有人知道构建过程中哪里可能出错吗?不知道还能在哪里查找。
谢谢。
答案1
所以这其实是 2.26.1 中的一个 bug。当然,这也是你在问了相关问题 30 秒后才发现的 bug 之一。相关补丁可以在这里找到在 github 上。