Я пытаюсь создать приложение 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?
Кто-то недавно добавлена базовая поддержка ARM для плагина NAR. Но AOL это просто arm-Linux-gcc
— Я не знаю, где твой gnueabi
выше исходит от.
Если плагин NAR стандартные настройки ARM не работают для вас, вы можете попробовать использовать свой собственный вариант. Вот пример проекта это определяет его собственные пользовательские свойства AOL.