Кросс-компиляция в Linux для Windows

В настоящее время я использую MXE для выполнения кросс-компиляции, пытаясь кросс-компилировать с 0MQ, который впервые использует привязки libzmq для C++. Я уже положил zmq.hpp & zmq.h файлы в папке include, но я получаю сообщение об ошибке -lzmq не может быть найден. Мне было интересно, есть ли способ вручную добавить библиотеку libzmq в MXE для этой цели?

Ошибка:

/home/mxe/usr/lib/gcc/i686-pc-mingw32/4.8.1/../../../../i686-pc-mingw32/bin/ld: cannot find -lzmq
collect2: error: ld returned 1 exit status
make[1]: *** [release/myapp.exe] Error 1
make[1]: Leaving directory `/home/Desktop/myapp'
make: *** [release] Error 2

2 ответа

Не уверен насчет вашего точного сценария, но, работая несколько раз с MXE, я научился использовать все из текущего рабочего каталога вместо стандартных заголовков и расположений.

т.е. в вашем случае попробуйте путем размещения

zmq.hpp & zmq.h in /home/Desktop/myapp

с помощью операторов include "" вместо <>

Вы можете спросить в списке рассылки MXE, они очень полезны.

Однако вы также можете добавить zmq, посмотрев инструкции MXE по созданию пакетов, которые здесь:

 http://mxe.cc/#creating-packages

В основном MXE основан на огромной коллекции Make-файлов и патчей, чтобы они работали под MXE. Чтобы добавить пакет, вам нужно создать make-файл ".mk" в каталоге "src", а затем выяснить, как сделать патч. Библиотека xz - хороший простой пример:

 https://github.com/mxe/mxe/blob/master/src/xz.mk

Удачи.

Другие вопросы по тегам