我正在尝试使用 clang 在 macOS 上构建 pkgconfig 0.29。我收到这些错误:
gatomic.c:392:10: error: incompatible integer to pointer conversion passing 'gssize' (aka 'long') to parameter of type 'gpointer' (aka 'void *') [-Wint-conversion]
return g_atomic_pointer_add ((volatile gpointer *) atomic, val);
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
./gatomic.h:170:46: note: expanded from macro 'g_atomic_pointer_add'
(gssize) __sync_fetch_and_add ((atomic), (val)); \
^~~~~
gatomic.c:416:10: error: incompatible integer to pointer conversion passing 'gsize' (aka 'unsigned long') to parameter of type 'gpointer' (aka 'void *') [-Wint-conversion]
return g_atomic_pointer_and ((volatile gpointer *) atomic, val);
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
./gatomic.h:177:45: note: expanded from macro 'g_atomic_pointer_and'
(gsize) __sync_fetch_and_and ((atomic), (val)); \
^~~~~
gatomic.c:440:10: error: incompatible integer to pointer conversion passing 'gsize' (aka 'unsigned long') to parameter of type 'gpointer' (aka 'void *') [-Wint-conversion]
return g_atomic_pointer_or ((volatile gpointer *) atomic, val);
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
./gatomic.h:184:44: note: expanded from macro 'g_atomic_pointer_or'
(gsize) __sync_fetch_and_or ((atomic), (val)); \
^~~~~
gatomic.c:464:10: error: incompatible integer to pointer conversion passing 'gsize' (aka 'unsigned long') to parameter of type 'gpointer' (aka 'void *') [-Wint-conversion]
return g_atomic_pointer_xor ((volatile gpointer *) atomic, val);
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
./gatomic.h:191:45: note: expanded from macro 'g_atomic_pointer_xor'
(gsize) __sync_fetch_and_xor ((atomic), (val)); \
^~~~~
4 errors generated.
这是完整的
make
日志:
~/D/pkg-config-0.29> sudo make install
Making install in glib
/Applications/Xcode.app/Contents/Developer/usr/bin/make install-recursive
Making install in .
make[4]: Nothing to be done for `install-exec-am'.
Making install in m4macros
/Applications/Xcode.app/Contents/Developer/usr/bin/make install-am
make[5]: Nothing to be done for `install-exec-am'.
Making install in glib
GEN glibconfig-stamp
config.status: executing glib/glibconfig.h commands
config.status: glib/glibconfig.h is unchanged
/Applications/Xcode.app/Contents/Developer/usr/bin/make install-recursive
Making install in libcharset
/Applications/Xcode.app/Contents/Developer/usr/bin/make install-am
CC libcharset_la-localcharset.lo
CCLD libcharset.la
GEN ref-add.sed
GEN ref-del.sed
GEN charset.alias
make[7]: Nothing to be done for `install-exec-am'.
Making install in gnulib
/Applications/Xcode.app/Contents/Developer/usr/bin/make install-am
CC libgnulib_la-asnprintf.lo
CC libgnulib_la-printf-args.lo
CC libgnulib_la-printf-parse.lo
CC libgnulib_la-vasnprintf.lo
CC libgnulib_la-printf.lo
CCLD libgnulib.la
make[7]: Nothing to be done for `install-exec-am'.
Making install in .
CC libglib_2_0_la-gallocator.lo
CC libglib_2_0_la-gcache.lo
CC libglib_2_0_la-gcompletion.lo
CC libglib_2_0_la-grel.lo
CC libglib_2_0_la-gthread-deprecated.lo
CC libglib_2_0_la-garray.lo
CC libglib_2_0_la-gasyncqueue.lo
CC libglib_2_0_la-gatomic.lo
gatomic.c:392:10: error: incompatible integer to pointer conversion passing 'gssize' (aka 'long') to parameter of type 'gpointer' (aka 'void *') [-Wint-conversion]
return g_atomic_pointer_add ((volatile gpointer *) atomic, val);
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
./gatomic.h:170:46: note: expanded from macro 'g_atomic_pointer_add'
(gssize) __sync_fetch_and_add ((atomic), (val)); \
^~~~~
gatomic.c:416:10: error: incompatible integer to pointer conversion passing 'gsize' (aka 'unsigned long') to parameter of type 'gpointer' (aka 'void *') [-Wint-conversion]
return g_atomic_pointer_and ((volatile gpointer *) atomic, val);
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
./gatomic.h:177:45: note: expanded from macro 'g_atomic_pointer_and'
(gsize) __sync_fetch_and_and ((atomic), (val)); \
^~~~~
gatomic.c:440:10: error: incompatible integer to pointer conversion passing 'gsize' (aka 'unsigned long') to parameter of type 'gpointer' (aka 'void *') [-Wint-conversion]
return g_atomic_pointer_or ((volatile gpointer *) atomic, val);
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
./gatomic.h:184:44: note: expanded from macro 'g_atomic_pointer_or'
(gsize) __sync_fetch_and_or ((atomic), (val)); \
^~~~~
gatomic.c:464:10: error: incompatible integer to pointer conversion passing 'gsize' (aka 'unsigned long') to parameter of type 'gpointer' (aka 'void *') [-Wint-conversion]
return g_atomic_pointer_xor ((volatile gpointer *) atomic, val);
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
./gatomic.h:191:45: note: expanded from macro 'g_atomic_pointer_xor'
(gsize) __sync_fetch_and_xor ((atomic), (val)); \
^~~~~
4 errors generated.
make[5]: *** [libglib_2_0_la-gatomic.lo] Error 1
make[4]: *** [install-recursive] Error 1
make[3]: *** [install] Error 2
make[2]: *** [install-recursive] Error 1
make[1]: *** [install] Error 2
make: *** [install-recursive] Error 1
我的软件:
~/D/pkg-config-0.29 [0|2]> clang --version
Apple clang version 15.0.0 (clang-1500.3.9.4)
Target: arm64-apple-darwin23.5.0
Thread model: posix
InstalledDir: /Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin
我在 M1 MacBook Air 上使用 macOS Sonoma 14.5 (23F79)。
pkgconfig 可以用 clang 构建吗?难道还有别的事?
您找到解决这个问题的方法了吗?我很感兴趣,因为我也遇到了这个问题。 谢谢!