和标题说的差不多。我一直在尝试使用 MinGW 在 Windows 下构建 RabbitMQ,但没有成功。从我看到的询问如何使用它的问题来看,我怀疑我犯了一个愚蠢的错误,但我不知道它是什么。我在 Win7-64 上,我正在提取 repo,在其中创建一个构建目录,然后运行
cmake -G "MinGW Makefiles" ..
这似乎有效,然后
cmake --build .
这会引发一堆函数重新声明错误。有人知道我在这里搞砸了什么吗?
只是为了更好地衡量,错误的一小部分样本:
Linking C shared library librabbitmq.1.dll
CMakeFiles\rabbitmq.dir/objects.a(amqp_api.c.obj):amqp_api.c:(.rdata+0x3c): mult
iple definition of `amqp_empty_array'
CMakeFiles\rabbitmq.dir/objects.a(amqp_framing.c.obj):amqp_framing.c:(.bss+0x0):
first defined here
CMakeFiles\rabbitmq.dir/objects.a(amqp_api.c.obj):amqp_api.c:(.rdata+0x44): mult
iple definition of `amqp_empty_table'
CMakeFiles\rabbitmq.dir/objects.a(amqp_framing.c.obj):amqp_framing.c:(.bss+0x8):
first defined here
CMakeFiles\rabbitmq.dir/objects.a(amqp_api.c.obj):amqp_api.c:(.rdata+0x4c): mult
iple definition of `amqp_empty_bytes'
CMakeFiles\rabbitmq.dir/objects.a(amqp_framing.c.obj):amqp_framing.c:(.bss+0x10)
: first defined here
CMakeFiles\rabbitmq.dir/objects.a(amqp_connection.c.obj):amqp_connection.c:(.bss
+0x0): multiple definition of `amqp_empty_array'
CMakeFiles\rabbitmq.dir/objects.a(amqp_framing.c.obj):amqp_framing.c:(.bss+0x0):
first defined here
CMakeFiles\rabbitmq.dir/objects.a(amqp_connection.c.obj):amqp_connection.c:(.bss
+0x8): multiple definition of `amqp_empty_table'
CMakeFiles\rlibrabbitmq\CMakeFiles\rabbitmq.dir\build.make:271: recipe for targe
t 'librabbitmq/librabbitmq.1.dll' failed
编辑: 一段时间后,我确定问题在于预处理器指令的编写方式存在一些错误。我现在不打算关闭它,如果我有时间修复整个事情,我会回到这里并留下一个解决方案的答案。