我正在尝试运行amqpcpp
中的示例之一(代码段):
int onCancel(AMQPMessage * message ) {
AMQPQueue * q = message->getQueue();
q->Cancel( message->getConsumerTag());
return 0;
}
我有以下错误:
未定义符号:_ZN11AMQPMessage8getQueueEv
我已包含amqpcpp
的头文件。据此,可以识别此标头中的其他对象,并且可以正常工作。
该错误实际上是一个linker错误,表示您未与AMQP库链接。将库添加到项目设置中的库列表中(如果使用的是IDE)或将-lamqpcpp
添加到命令行中(如果已将其安装在非标准目录中,则可选地需要-L<path to amqpcpp library>
)。
聚会晚了一点,但我遇到了同样的问题。我使用CMake文件将AMQP-CPP链接到程序,但CMake抱怨它不存在。显然,库的顺序很重要。由于一个依赖另一个,因此无法编译。我将AMQP-CPP作为最后一个库进行了修复。