[rabbitmq-discuss] Is there any mature C/C++ client for rabbitmq?

techabc techabc at gmail.com
Thu Jan 13 12:34:45 GMT 2011


Thanks a lot.

I have try the default branch of rabbitmq-c and codegen just now, and still
report error bellow:

examples/Makefile.am: installing `./depcomp'
+ ./configure CC=cl.exe LD=link.exe CFLAGS=-nologo
checking for a BSD-compatible install... /bin/install -c
checking whether build environment is sane... yes
checking for a thread-safe mkdir -p... /bin/mkdir -p
checking for gawk... gawk
checking whether make sets $(MAKE)... yes
checking for style of include used by make... GNU
checking for gcc... cl.exe
checking whether the C compiler works... yes
checking for C compiler default output file name... conftest.exe
checking for suffix of executables... .exe
checking whether we are cross compiling... no
checking for suffix of object files... obj
checking whether we are using the GNU C compiler... no
checking whether cl.exe accepts -g... yes
checking for cl.exe option to accept ISO C89... none needed
checking dependency style of cl.exe... none
checking how to run the C preprocessor... cl.exe -E
checking for grep that handles long lines and -e... /bin/grep
checking for egrep... /bin/grep -E
checking for ANSI C header files... yes
checking for sys/types.h... yes
checking for sys/stat.h... yes
checking for stdlib.h... yes
checking for string.h... yes
checking for memory.h... yes
checking for strings.h... no
checking for inttypes.h... no
checking for stdint.h... yes
checking for unistd.h... no
checking minix/config.h usability... no
checking minix/config.h presence... no
checking for minix/config.h... no
checking whether it is safe to define __EXTENSIONS__... yes
checking for gcc... (cached) cl.exe
checking whether we are using the GNU C compiler... (cached) no
checking whether cl.exe accepts -g... (cached) yes
checking for cl.exe option to accept ISO C89... (cached) none needed
checking dependency style of cl.exe... (cached) none
checking build system type... i686-pc-mingw32
checking host system type... i686-pc-mingw32
checking for as... as
checking for dlltool... dlltool
checking for objdump... objdump
checking how to print strings... printf
checking for a sed that does not truncate output... /bin/sed
checking for fgrep... /bin/grep -F
checking for non-GNU ld... link.exe
checking if the linker (link.exe) is GNU ld... no
checking for BSD- or MS-compatible name lister (nm)... /mingw/bin/nm
checking the name lister (/mingw/bin/nm) interface... BSD nm
checking whether ln -s works... no, using cp -p
checking the maximum length of command line arguments... 8192
checking whether the shell understands some XSI constructs... yes
checking whether the shell understands "+="... yes
checking how to convert i686-pc-mingw32 file names to i686-pc-mingw32
format...
func_convert_file_msys_to_w32
checking how to convert i686-pc-mingw32 file names to toolchain format...
func_c
onvert_file_msys_to_w32
checking for link.exe option to reload object files... -r
checking for objdump... (cached) objdump
checking how to recognize dependent libraries... file_magic ^x86 archive
import|
^x86 DLL
checking for dlltool... (cached) dlltool
checking how to associate runtime and link libraries...
func_cygming_dll_for_imp
lib
checking for ar... ar
checking for archiver @FILE support... @
checking for strip... strip
checking for ranlib... ranlib
checking command to parse /mingw/bin/nm output from cl.exe object... ok
checking for sysroot... no
checking for mt... no
checking if : is a manifest tool... no
checking for dlfcn.h... no
checking for objdir... .libs
checking for cl.exe option to produce PIC... -DDLL_EXPORT -DPIC
checking if cl.exe PIC flag -DDLL_EXPORT -DPIC works... yes
checking if cl.exe static flag  works... yes
checking if cl.exe supports -c -o file.obj... no
checking if cl.exe supports -c -o file.obj... (cached) no
checking if we can lock with hard links... yes
checking whether the cl.exe linker (link.exe) supports shared libraries...
yes
checking dynamic linker characteristics... Win32 link.exe
checking how to hardcode library paths into programs... immediate
checking whether stripping libraries is possible... yes
checking if libtool supports shared libraries... yes
checking whether to build shared libraries... yes
checking whether to build static libraries... yes
checking for ANSI C header files... (cached) yes
checking for inline... __inline
checking location of AMQP codegen directory... codegen
checking finding a python with simplejson installed... python
checking for poptGetContext in -lpopt... no
checking for xmlto... no
configure: creating ./config.status
config.status: creating Makefile
config.status: creating librabbitmq/Makefile
config.status: creating tests/Makefile
config.status: creating examples/Makefile
config.status: creating tools/Makefile
config.status: creating tools/doc/Makefile
config.status: creating config.h
config.status: executing depfiles commands
config.status: executing libtool commands
+ sed -i -e
's/^fix_srcfile_path=.*$/fix_srcfile_path=""/;s/^deplibs_check_metho
d=.*$/deplibs_check_method=pass_all/;/^archive_cmds=/s/-link -dll/&
-implib:\\$l
ibname.\\$libext/' libtool
+ make
make  all-recursive
make[1]: Entering directory `/d/lib.rabbitmq/default/rabbitmq-c'
Making all in librabbitmq
make[2]: Entering directory `/d/lib.rabbitmq/default/rabbitmq-c/librabbitmq'
PYTHONPATH=../codegen python ./codegen.py header
../codegen/amqp-rabbitmq-0.9.1.
json amqp_framing.h
PYTHONPATH=../codegen python ./codegen.py body
../codegen/amqp-rabbitmq-0.9.1.js
on amqp_framing.c
make  all-am
make[3]: Entering directory `/d/lib.rabbitmq/default/rabbitmq-c/librabbitmq'
source='amqp_mem.c' object='amqp_mem.lo' libtool=yes \
        DEPDIR=.deps depmode=none /bin/sh ../depcomp \
        /bin/sh ../libtool --tag=CC   --mode=compile cl.exe -DHAVE_CONFIG_H
-I.
-I..    -I./windows -DBUILDING_LIBRABBITMQ  -I../msinttypes -nologo -c -o
amqp_m
em.lo amqp_mem.c
libtool: compile:  cl.exe -DHAVE_CONFIG_H -I. -I.. -I./windows
-DBUILDING_LIBRAB
BITMQ -I../msinttypes -nologo -c amqp_mem.c  -DDLL_EXPORT -DPIC
amqp_mem.c
libtool: compile: mv -f "amqp_mem.obj" ".libs/amqp_mem.obj"
libtool: compile:  cl.exe -DHAVE_CONFIG_H -I. -I.. -I./windows
-DBUILDING_LIBRAB
BITMQ -I../msinttypes -nologo -c amqp_mem.c >/dev/null 2>&1
source='amqp_table.c' object='amqp_table.lo' libtool=yes \
        DEPDIR=.deps depmode=none /bin/sh ../depcomp \
        /bin/sh ../libtool --tag=CC   --mode=compile cl.exe -DHAVE_CONFIG_H
-I.
-I..    -I./windows -DBUILDING_LIBRABBITMQ  -I../msinttypes -nologo -c -o
amqp_t
able.lo amqp_table.c
libtool: compile:  cl.exe -DHAVE_CONFIG_H -I. -I.. -I./windows
-DBUILDING_LIBRAB
BITMQ -I../msinttypes -nologo -c amqp_table.c  -DDLL_EXPORT -DPIC
amqp_table.c
libtool: compile: mv -f "amqp_table.obj" ".libs/amqp_table.obj"
libtool: compile:  cl.exe -DHAVE_CONFIG_H -I. -I.. -I./windows
-DBUILDING_LIBRAB
BITMQ -I../msinttypes -nologo -c amqp_table.c >/dev/null 2>&1
source='amqp_connection.c' object='amqp_connection.lo' libtool=yes \
        DEPDIR=.deps depmode=none /bin/sh ../depcomp \
        /bin/sh ../libtool --tag=CC   --mode=compile cl.exe -DHAVE_CONFIG_H
-I.
-I..    -I./windows -DBUILDING_LIBRABBITMQ  -I../msinttypes -nologo -c -o
amqp_c
onnection.lo amqp_connection.c
libtool: compile:  cl.exe -DHAVE_CONFIG_H -I. -I.. -I./windows
-DBUILDING_LIBRAB
BITMQ -I../msinttypes -nologo -c amqp_connection.c  -DDLL_EXPORT -DPIC
amqp_connection.c
libtool: compile: mv -f "amqp_connection.obj" ".libs/amqp_connection.obj"
libtool: compile:  cl.exe -DHAVE_CONFIG_H -I. -I.. -I./windows
-DBUILDING_LIBRAB
BITMQ -I../msinttypes -nologo -c amqp_connection.c >/dev/null 2>&1
source='amqp_socket.c' object='amqp_socket.lo' libtool=yes \
        DEPDIR=.deps depmode=none /bin/sh ../depcomp \
        /bin/sh ../libtool --tag=CC   --mode=compile cl.exe -DHAVE_CONFIG_H
-I.
-I..    -I./windows -DBUILDING_LIBRABBITMQ  -I../msinttypes -nologo -c -o
amqp_s
ocket.lo amqp_socket.c
libtool: compile:  cl.exe -DHAVE_CONFIG_H -I. -I.. -I./windows
-DBUILDING_LIBRAB
BITMQ -I../msinttypes -nologo -c amqp_socket.c  -DDLL_EXPORT -DPIC
amqp_socket.c
libtool: compile: mv -f "amqp_socket.obj" ".libs/amqp_socket.obj"
libtool: compile:  cl.exe -DHAVE_CONFIG_H -I. -I.. -I./windows
-DBUILDING_LIBRAB
BITMQ -I../msinttypes -nologo -c amqp_socket.c >/dev/null 2>&1
source='amqp_api.c' object='amqp_api.lo' libtool=yes \
        DEPDIR=.deps depmode=none /bin/sh ../depcomp \
        /bin/sh ../libtool --tag=CC   --mode=compile cl.exe -DHAVE_CONFIG_H
-I.
-I..    -I./windows -DBUILDING_LIBRABBITMQ  -I../msinttypes -nologo -c -o
amqp_a
pi.lo amqp_api.c
libtool: compile:  cl.exe -DHAVE_CONFIG_H -I. -I.. -I./windows
-DBUILDING_LIBRAB
BITMQ -I../msinttypes -nologo -c amqp_api.c  -DDLL_EXPORT -DPIC
amqp_api.c
libtool: compile: mv -f "amqp_api.obj" ".libs/amqp_api.obj"
libtool: compile:  cl.exe -DHAVE_CONFIG_H -I. -I.. -I./windows
-DBUILDING_LIBRAB
BITMQ -I../msinttypes -nologo -c amqp_api.c >/dev/null 2>&1
source='windows/socket.c' object='socket.lo' libtool=yes \
        DEPDIR=.deps depmode=none /bin/sh ../depcomp \
        /bin/sh ../libtool  --tag=CC   --mode=compile cl.exe -DHAVE_CONFIG_H
-I.
 -I..    -I./windows -DBUILDING_LIBRABBITMQ  -I../msinttypes -nologo -c -o
socke
t.lo `test -f 'windows/socket.c' || echo './'`windows/socket.c
libtool: compile:  cl.exe -DHAVE_CONFIG_H -I. -I.. -I./windows
-DBUILDING_LIBRAB
BITMQ -I../msinttypes -nologo -c windows/socket.c  -DDLL_EXPORT -DPIC
socket.c
libtool: compile: mv -f "socket.obj" ".libs/socket.obj"
libtool: compile:  cl.exe -DHAVE_CONFIG_H -I. -I.. -I./windows
-DBUILDING_LIBRAB
BITMQ -I../msinttypes -nologo -c windows/socket.c >/dev/null 2>&1
source='amqp_framing.c' object='amqp_framing.lo' libtool=yes \
        DEPDIR=.deps depmode=none /bin/sh ../depcomp \
        /bin/sh ../libtool --tag=CC   --mode=compile cl.exe -DHAVE_CONFIG_H
-I.
-I..    -I./windows -DBUILDING_LIBRABBITMQ  -I../msinttypes -nologo -c -o
amqp_f
raming.lo amqp_framing.c
libtool: compile:  cl.exe -DHAVE_CONFIG_H -I. -I.. -I./windows
-DBUILDING_LIBRAB
BITMQ -I../msinttypes -nologo -c amqp_framing.c  -DDLL_EXPORT -DPIC
amqp_framing.c
libtool: compile: mv -f "amqp_framing.obj" ".libs/amqp_framing.obj"
libtool: compile:  cl.exe -DHAVE_CONFIG_H -I. -I.. -I./windows
-DBUILDING_LIBRAB
BITMQ -I../msinttypes -nologo -c amqp_framing.c >/dev/null 2>&1
/bin/sh ../libtool --tag=CC   --mode=link cl.exe -I./windows
-DBUILDING_LIBRABBI
TMQ  -I../msinttypes -nologo -no-undefined  -o librabbitmq.la -rpath
/usr/local/
lib amqp_mem.lo amqp_table.lo amqp_connection.lo amqp_socket.lo amqp_api.lo
sock
et.lo amqp_framing.lo ws2_32.lib

*** Warning: Linking the shared library librabbitmq.la against the
*** static library ws2_32.lib is not portable!
libtool: link: /mingw/bin/nm  .libs/amqp_mem.obj .libs/amqp_table.obj
.libs/amqp
_connection.obj .libs/amqp_socket.obj .libs/amqp_api.obj .libs/socket.obj
.libs/
amqp_framing.obj   | sed -n -e 's/^.*[   ]\([ABCDGIRSTW][ABCDGIRSTW]*\)[ ][
]*_\
([_A-Za-z][_A-Za-z0-9]*\)\{0,1\}$/\1 _\2 \2/p' | sed '/ __gnu_lto/d' |
/bin/sed
-e '/^[BCDGRS][ ]/s/.*[ ]\([^ ]*\)/\1,DATA/' | /bin/sed -e '/^[AITW][
]/s/.*[ ]/
/' | sort | uniq > .libs/rabbitmq.exp
libtool: link: if test "x`/bin/sed 1q .libs/rabbitmq.exp`" = xEXPORTS; then
sed
-n -e s/\\\(.*\\\)/-link\ -EXPORT:\\\1/ -e 1\!p < .libs/rabbitmq.exp >
.libs/rab
bitmq-0.dll.exp; else sed -e s/\\\(.*\\\)/-link\ -EXPORT:\\\1/ <
.libs/rabbitmq.
exp > .libs/rabbitmq-0.dll.exp; fi
libtool: link:  cl.exe -o .libs\\rabbitmq-0.dll  .libs/amqp_mem.obj
.libs/amqp_t
able.obj .libs/amqp_connection.obj .libs/amqp_socket.obj .libs/amqp_api.obj
.lib
s/socket.obj .libs/amqp_framing.obj      ws2_32.lib
"@.libs\\rabbitmq-0.dll.exp"
 -Wl,-DLL,-IMPLIB:".libs\\rabbitmq.dll.lib"
Microsoft (R) 32-bit C/C++ Optimizing Compiler Version 16.00.30319.01 for
80x86
Copyright (C) Microsoft Corporation.  All rights reserved.

cl : Command line warning D9035 : option 'o' has been deprecated and will be
rem
oved in a future release
cl -link -EXPORT:amqp_abort
   -link -EXPORT:amqp_basic_ack
   -link -EXPORT:amqp_basic_consume
   -link -EXPORT:amqp_basic_get
   -link -EXPORT:amqp_basic_publish
   -link -EXPORT:amqp_bytes_free
   -link -EXPORT:amqp_bytes_malloc
   -link -EXPORT:amqp_bytes_malloc_dup
   -link -EXPORT:amqp_channel_close
   -link -EXPORT:amqp_channel_open
   -link -EXPORT:amqp_connection_close
   -link -EXPORT:amqp_constant_is_hard_error
   -link -EXPORT:amqp_constant_name
   -link -EXPORT:amqp_cstring_bytes
   -link -EXPORT:amqp_data_in_buffer
   -link -EXPORT:amqp_decode_method
   -link -EXPORT:amqp_decode_properties
   -link -EXPORT:amqp_decode_table
   -link -EXPORT:amqp_destroy_connection
   -link -EXPORT:amqp_empty_array,DATA
   -link -EXPORT:amqp_empty_bytes,DATA
   -link -EXPORT:amqp_empty_table,DATA
   -link -EXPORT:amqp_encode_method
   -link -EXPORT:amqp_encode_properties
   -link -EXPORT:amqp_encode_table
   -link -EXPORT:amqp_error_string
   -link -EXPORT:amqp_exchange_declare
   -link -EXPORT:amqp_frames_enqueued
   -link -EXPORT:amqp_get_channel_max
   -link -EXPORT:amqp_get_rpc_reply
   -link -EXPORT:amqp_get_sockfd
   -link -EXPORT:amqp_handle_input
   -link -EXPORT:amqp_login
   -link -EXPORT:amqp_maybe_release_buffers
   -link -EXPORT:amqp_method_has_content
   -link -EXPORT:amqp_method_name
   -link -EXPORT:amqp_new_connection
   -link -EXPORT:amqp_open_socket
   -link -EXPORT:amqp_os_error_string
   -link -EXPORT:amqp_pool_alloc
   -link -EXPORT:amqp_pool_alloc_bytes
   -link -EXPORT:amqp_queue_bind
   -link -EXPORT:amqp_queue_declare
   -link -EXPORT:amqp_queue_delete
   -link -EXPORT:amqp_queue_purge
   -link -EXPORT:amqp_queue_unbind
   -link -EXPORT:amqp_release_buffers
   -link -EXPORT:amqp_release_buffers_ok
   -link -EXPORT:amqp_send_frame
   -link -EXPORT:amqp_send_header
   -link -EXPORT:amqp_send_method
   -link -EXPORT:amqp_set_sockfd
   -link -EXPORT:amqp_simple_rpc
   -link -EXPORT:amqp_simple_wait_frame
   -link -EXPORT:amqp_simple_wait_method
   -link -EXPORT:amqp_socket_init
   -link -EXPORT:amqp_table_entry_cmp
   -link -EXPORT:amqp_tune_connection
   -link -EXPORT:amqp_tx_commit
   -link -EXPORT:amqp_tx_rollback
   -link -EXPORT:amqp_tx_select
   -link -EXPORT:amqp_version
   -link -EXPORT:empty_amqp_pool
   -link -EXPORT:init_amqp_pool
   -link -EXPORT:recycle_amqp_pool
cl : Command line error D8021 : invalid numeric argument
'/Wl,-DLL,-IMPLIB:.libs
\rabbitmq.dll.lib'
make[3]: *** [librabbitmq.la] Error 2
make[3]: Leaving directory `/d/lib.rabbitmq/default/rabbitmq-c/librabbitmq'
make[2]: *** [all] Error 2
make[2]: Leaving directory `/d/lib.rabbitmq/default/rabbitmq-c/librabbitmq'
make[1]: *** [all-recursive] Error 1
make[1]: Leaving directory `/d/lib.rabbitmq/default/rabbitmq-c'
make: *** [all] Error 2


2011/1/13 David Wragg <david at rabbitmq.com>

> Ah, it looks like you have got code from the tip of the Mercurial
> repository, which is on a development branch.  I think this explains
> your build problem.  Instead of downloading from the main repository
> page, please download from
>
> http://hg.rabbitmq.com/rabbitmq-c/rev/default
>
> and
>
> http://hg.rabbitmq.com/rabbitmq-codegen/rev/default
>
>
> David
>
> --
> David Wragg
> Staff Engineer, RabbitMQ
> SpringSource, a division of VMware
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.rabbitmq.com/pipermail/rabbitmq-discuss/attachments/20110113/20542e61/attachment-0001.htm>


More information about the rabbitmq-discuss mailing list