Кросс-компиляция для ARM с использованием плагина Maven NAR
Я пытаюсь создать приложение C++ для x86/amd64 и ARM с плагином Maven NAR для Debian/Ubuntu. У меня проблемы с настройкой правильного профиля для кросс-компиляции ARM с помощью arm-linux-gnueabi-gcc.
Фрагмент профиля из моего pom.xml выглядит так:
<profile>
<id>arm-linux-cross</id>
<properties>
<debug.option>true</debug.option>
</properties>
<build>
<plugins>
<plugin>
<groupId>com.github.maven-nar</groupId>
<artifactId>nar-maven-plugin</artifactId>
<configuration>
<arch>arm</arch>
<cpp>
<name>arm-linux-gnueabi-g++</name>
<options>
<option>-march=armv5</option>
</options>
</cpp>
<linker>
<name>arm-linux-gnueabi-gcc</name>
<sysLibs>
<sysLib>
<name>stdc++</name>
</sysLib>
...
</sysLibs>
</linker>
</configuration>
</plugin>
</plugins>
</build>
</profile>
Сборка этого профиля с помощью `mvn compile -P arm-linux-cross'не работает:
[INFO] Using AOL: amd64-Linux-arm-linux-gnueabi-gcc
[INFO] ------------------------------------------------------------
[INFO] BUILD FAILURE
[INFO] ------------------------------------------------------------
[INFO] Total time: 1.464s
[INFO] Finished at: Fri Feb 13 11:00:05 CET 2015
[INFO] Final Memory: 10M/147M
[INFO] -----------------------------------------------------------
[ERROR] Failed to execute goal com.github.maven-nar:nar-maven-plugin:3.0.0:nar-validate (default-nar-validate) on project sirka-model: Cannot find version number for linker 'arm-linux-gnueabi-gcc' -> [Help 1]
Очевидно, что используемый здесь AOL недоступен, поэтому Maven не распознает компилятор / компоновщик. Но как я могу добавить необходимый AOL? Или есть другой способ кросс-компиляции для ARM с Maven?
1 ответ
Кто-то недавно добавил базовую поддержку ARM в плагин NAR. Но AOL это просто arm-Linux-gcc
- Я не знаю, где твой gnueabi
выше исходит от.
Если стандартные настройки ARM плагина NAR у вас не работают, вы можете попробовать использовать свой собственный вариант. Вот пример проекта, который определяет свои собственные пользовательские свойства AOL.