Кросс-компиляция в 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
Удачи.