Моно кросс-компиляция для проприетарного устройства ARM
В настоящее время на работе мы разрабатываем программное обеспечение для некоторых устройств с прямым порядком байтов. В настоящее время мы делаем это в простом C, что является болью. К счастью для нас, компания, которая создает устройства, предоставляет поддержку C++, к сожалению, та же самая компания испортила библиотеки C++, поэтому проект терпит неудачу на этапе компиляции, ура!
В последнее время я искал альтернативы, и самая интересная альтернатива - это моно. Я вижу, что компиляция моно для рук в основном выполняется в блокноте, и это кажется хорошей альтернативой. Но я также вижу, что мне нужно настроить rootfs, который похож на мое устройство... Однако у меня нет возможности узнать, что такое rootfs на моем устройстве, потому что я никак не могу подключиться к нему. Сделает ли это невозможным компиляцию моно с использованием scratchbox? Если так, есть ли другой способ, которым я могу скомпилировать моно?
1 ответ
Вы можете кросс-компилировать с обычной поддержкой configure, что-то вроде этого:
CC = arm-linux-yourabi-gcc CFLAGS = "- march = armv7-a -mfloat-abi = softfp" -DARM_FPU_VFP = 1./configure --host = arm-linux-yourabi --disable-mcs-build
Конечно, вам нужно настроить для вашего устройства ABI и поддержку плавающей запятой. --disable-mcs-build необходим, потому что вы не можете запустить кросс-скомпилированный моно в вашей системе: вы можете собрать библиотеки классов и код C# в отдельном дереве на вашем devel box и просто скопировать их в цель.
Кроме того, вопреки тому, что IanNorton пишет в комментариях, моно среда выполнения написана на C (в C++ имеется только очень небольшая привязка к llvm, что не является обязательным, не в сборке по умолчанию и определенно не полезно для вашей установки).