然后编译openwire提供的main.c,编译没问题,连接就出来了undefined reference to "xx"
main.c 在 http://svn.apache.org/repos/asf/activemq/sandbox/openwire-c/src/examples/main.c
编译命令是
gcc -W -Wall -lactivemq -lopenwire -lapr-1 -L/usr/local/apr/lib main.o -o testmq
出错信息(部分):
main.o: In function 'die':
main.c:(.text+0xf3):undefined reference to 'apr_initialize'
...
main.c:(.text+0x2c5):undefined reference to 'amqcs_send'
...
如果是amqcs.h或者ow.h里面的函数,都是undefined reference
另外,这些代码都是C,没有c++,ow.h 可以看
http://svn.apache.org/repos/asf/activemq/sandbox/openwire-c/src/libopenwire/ow.h
amqcs.h 在 http://svn.apache.org/repos/asf/activemq/sandbox/openwire-c/src/libactivemq/amqcs.h
谢谢回复!
11 个解决方案
#1
activemq问题还是蛮多的...
#2
用nm -D看so的导出
#3
++
#4
nm 和 objdump 都用了,显示是正常的,里面的函数都有
#5
nm 和 objdump 都用了,显示是正常的,里面的函数都有
#6
按 chinaunix的方法,加了--start-group就可以连接过去了,谢谢各位!
#7
楼主,你好。
我最近也在弄这个activemq。有一个问题没有弄清楚。
两台主机(无论是windows还是linux的)我都可以用java实现通信。但是我不太清楚用c怎么实现的。例如我在windows主机上使用java客户端,安装activemq,而在另一台主机上我不安装activemq(两台主机通信一般也只需要一个activemq就够了),也不安装jdk(因为这台主机不打算使用java编写客户端),是否只需要安装支持mq的运行库就够了,自己来写c客户端呢?不知道这种想法是否正确?还请大神帮忙解答啊。
另外activemq官网上的那个openwire-c客户端代码“http://svn.apache.org/repos/asf/activemq/sandbox/openwire-c/”如何编译呢?在编译过程中需要jdk支持么?我是弄java的,c只是本科时学过,不太会怎么用。
我最近也在弄这个activemq。有一个问题没有弄清楚。
两台主机(无论是windows还是linux的)我都可以用java实现通信。但是我不太清楚用c怎么实现的。例如我在windows主机上使用java客户端,安装activemq,而在另一台主机上我不安装activemq(两台主机通信一般也只需要一个activemq就够了),也不安装jdk(因为这台主机不打算使用java编写客户端),是否只需要安装支持mq的运行库就够了,自己来写c客户端呢?不知道这种想法是否正确?还请大神帮忙解答啊。
另外activemq官网上的那个openwire-c客户端代码“http://svn.apache.org/repos/asf/activemq/sandbox/openwire-c/”如何编译呢?在编译过程中需要jdk支持么?我是弄java的,c只是本科时学过,不太会怎么用。
#8
不一定一定要有java环境,用别的语言只要遵守mq的协议就可以了。activemq还支持一些公开的协议,就是说可以在不是自己的协议的第三方协议中通信。
openwire-c 等开源也可以在windows编译,可能要cygwin等,这个要看一下编译的文档,熟悉gcc
#9
我在activemq的论坛上看到,目前用activemq openwire-c的人很少,大部分已经转向activemq-cpp了,不知道这个怎么编译啊?
网上给的“http://blog.sina.com.cn/s/blog_7f311ef50101cnii.html” 这个我按照这个编译出错,报告ConnectionStateTracker.cpp:61:error not have any field named 'LinkedHashMap'。
万分感谢~
网上给的“http://blog.sina.com.cn/s/blog_7f311ef50101cnii.html” 这个我按照这个编译出错,报告ConnectionStateTracker.cpp:61:error not have any field named 'LinkedHashMap'。
万分感谢~
#10
楼主,你能把你的activemq c客户端的编译步骤发个我么?求教啊
#11
同求啊
#1
activemq问题还是蛮多的...
#2
用nm -D看so的导出
#3
++
#4
nm 和 objdump 都用了,显示是正常的,里面的函数都有
#5
nm 和 objdump 都用了,显示是正常的,里面的函数都有
#6
按 chinaunix的方法,加了--start-group就可以连接过去了,谢谢各位!
#7
楼主,你好。
我最近也在弄这个activemq。有一个问题没有弄清楚。
两台主机(无论是windows还是linux的)我都可以用java实现通信。但是我不太清楚用c怎么实现的。例如我在windows主机上使用java客户端,安装activemq,而在另一台主机上我不安装activemq(两台主机通信一般也只需要一个activemq就够了),也不安装jdk(因为这台主机不打算使用java编写客户端),是否只需要安装支持mq的运行库就够了,自己来写c客户端呢?不知道这种想法是否正确?还请大神帮忙解答啊。
另外activemq官网上的那个openwire-c客户端代码“http://svn.apache.org/repos/asf/activemq/sandbox/openwire-c/”如何编译呢?在编译过程中需要jdk支持么?我是弄java的,c只是本科时学过,不太会怎么用。
我最近也在弄这个activemq。有一个问题没有弄清楚。
两台主机(无论是windows还是linux的)我都可以用java实现通信。但是我不太清楚用c怎么实现的。例如我在windows主机上使用java客户端,安装activemq,而在另一台主机上我不安装activemq(两台主机通信一般也只需要一个activemq就够了),也不安装jdk(因为这台主机不打算使用java编写客户端),是否只需要安装支持mq的运行库就够了,自己来写c客户端呢?不知道这种想法是否正确?还请大神帮忙解答啊。
另外activemq官网上的那个openwire-c客户端代码“http://svn.apache.org/repos/asf/activemq/sandbox/openwire-c/”如何编译呢?在编译过程中需要jdk支持么?我是弄java的,c只是本科时学过,不太会怎么用。
#8
不一定一定要有java环境,用别的语言只要遵守mq的协议就可以了。activemq还支持一些公开的协议,就是说可以在不是自己的协议的第三方协议中通信。
openwire-c 等开源也可以在windows编译,可能要cygwin等,这个要看一下编译的文档,熟悉gcc
#9
我在activemq的论坛上看到,目前用activemq openwire-c的人很少,大部分已经转向activemq-cpp了,不知道这个怎么编译啊?
网上给的“http://blog.sina.com.cn/s/blog_7f311ef50101cnii.html” 这个我按照这个编译出错,报告ConnectionStateTracker.cpp:61:error not have any field named 'LinkedHashMap'。
万分感谢~
网上给的“http://blog.sina.com.cn/s/blog_7f311ef50101cnii.html” 这个我按照这个编译出错,报告ConnectionStateTracker.cpp:61:error not have any field named 'LinkedHashMap'。
万分感谢~
#10
楼主,你能把你的activemq c客户端的编译步骤发个我么?求教啊
#11
同求啊