2015-04-14 71 views
0

我正嘗試在mingw上構建nanomsg,使用mxe從ubuntu進行交叉編譯。目標主機是x86_64。我建立它很好,但它不會鏈接。我得到像無法鏈接在Windows MinGW的libnanomsg中,使用MXE進行交叉編譯

undefined reference to 'imp__nn_freemsg' 

我認爲這是一個靜態庫問題。我再次使用

./configure --enable-static --disable-shared ... 

同樣的問題。鏈接libn​​anomsg.a後,是否有任何鏈接器標誌需要放入gcc構建行中?

+0

是的!如果使用cmake創建VS,將會設置很多定義。有些位於src/nn.h中,其他位於四周。順便說一下,'imp__ **'問題總是無法靜態鏈接它。 -D_WIN32 -DNN_EXPORTS -DNN_HAVE_MINGW -DNN_HAVE_WINDOWS -DNN_USE_LITERAL_IFADDR = 1 -DSTATICLIB將解決此問題。 –

回答

1

如果使用cmake構建VS,將會設置很多定義。有些位於src/nn.h中,其他位於四周。順便說一下,'imp__ **'問題總是無法靜態鏈接它。

傳遞這些標誌將其鏈接:

-D_WIN32 -DNN_EXPORTS -DNN_HAVE_MINGW -DNN_HAVE_WINDOWS -DNN_USE_LITERAL_IFADDR = 1 -DSTATICLIB

相關問題