2015-04-14 8 views
0

Я пытаюсь построить nanomsg на mingw, скрещивая компиляцию с ubuntu с помощью mxe. Целевой хост - x86_64. Я построил его отлично, но он не будет связан. Я получаю такие вопросы, какНевозможно установить ссылку в libnanomsg для Windows MinGW, кросс-компиляция с использованием MXE

undefined reference to 'imp__nn_freemsg' 

Я думаю, что это статическая проблема с lib. Я снова построил, используя

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

Такая же проблема. Есть ли какие-либо флагов компоновщика, которые нужно добавить в строку сборки gcc после того, как я свяжусь в libnanomsg.a?

+0

Да! Существует множество определений, которые будут установлены, если вы создадите VS, используя cmake. Некоторые из них расположены в src/nn.h, другие разбросаны. Кстати, проблема «imp __ **» всегда является неспособностью связать ее статически. -D_WIN32 -DNN_EXPORTS -DNN_HAVE_MINGW -DNN_HAVE_WINDOWS -DNN_USE_LITERAL_IFADDR = 1 -DSTATICLIB исправит это. –

ответ

1

Существует множество определений, которые будут установлены, если вы построите VS, используя cmake. Некоторые из них расположены в src/nn.h, другие разбросаны. Кстати, проблема «imp __ **» всегда является неспособностью связать ее статически.

Проходя эти флаги будут связывать его:

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