2013-03-20 90 views
0

幾乎可以看到標題所說的內容。我一直試圖在Windows下使用MinGW構建RabbitMQ,但沒有成功。由人我見問如何使用它,我懷疑我作出了愚蠢的錯誤題量來看,但我不知道它是什麼。我在Win7-64,我提取式回購,在它創建一個build目錄,並運行使用MinGW在Windows上構建RabbitMQ-C

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 

編輯: 一段時間後,我已經確定問題是預處理器指令,必須在一定的誤差他們寫的方式。我現在不打算關閉它,如果我有時間來解決這個問題,我會回到這裏,並給出解決方案。

回答

0

我一直在分析amqp.h文件中定義的宏和我已經添加了extern修飾符的AMQP_PUBLIC_VARIABLE宏時建立一個非靜態庫。

78 #elif defined(_WIN32) && defined(__MINGW32__) 
79 # if defined(AMQP_BUILD) && !defined(AMQP_STATIC) 
80 # define AMQP_PUBLIC_FUNCTION __declspec(dllexport) 
81 # define AMQP_PUBLIC_VARIABLE __declspec(dllexport) extern 

另一件事,那我不得不修改文件中的WINVER宏「/MinGW/include/windef.h」 MinGW的環境中,以配合新的Windows版本。

11 #ifndef WINVER 
12 #define WINVER 0x0501 

在那之後,我已經建立了librabbitmq.1.dll庫,而無需使用cmake -G "MinGW Makefiles"問題.. & & cmake --build .命令

相關問題