Как установить ICECC_VERSION при кросс-компиляции с icecc

Я пытаюсь сделать кросс-компиляцию с icecc, без удачи. Прямо сейчас я пытаюсь скомпилировать для Windows в моей системе Linux, используя mingw, который отлично работает (даже с ccache), но я не могу получить icecc для правильного распределения компиляции.

К сожалению, документация IceCC довольно расплывчато Например, что должно «платформа» в ICECC_VERSION быть установленным в? Есть ли действительные / распознанные значения?

В настоящее время я создал собственный архив цепочки инструментов, используя:

icecc --build-native

…и архив для моей установки Ubuntu MinGW, используя:

/usr/lib/icecc/icecc-create-env --gcc /usr/bin/x86_64-w64-mingw32-gcc-win32 /usr/bin/x86_64-w64-mingw32-g++-win32

Я называю архивные файлы x86_64-gcc-5.4.0.tar.gz а также win64-mingw-5.3.1.tar.gzсоответственно.

мой ICECC_VERSION есть (я просто случайно выбрал «win64» в качестве имени платформы):

export ICECC_VERSION=/path/to/x86_64-gcc-5.4.0.tar.gz,win64:/path/to/win64-mingw-5.3.1.tar.gz

…и в моем файле CMake toolchain у меня есть (как временное решение для испытания):

set(CMAKE_C_COMPILER icecc x86_64-w64-mingw32-gcc-win32)
set(CMAKE_CXX_COMPILER icecc x86_64-w64-mingw32-g++-win32)

С export ICECC_DEBUG=debug Я получаю следующий вывод при компиляции файла C ++:

/usr/bin/icecc x86_64-w64-mingw32-g++-win32 .....
...
ICECC[1287] 16:11:18: connected to /var/run/icecc/iceccd.socket
ICECC[1287] 16:11:18: <building_local>
ICECC[1287] 16:11:29: invoking: /usr/bin/x86_64-w64-mingw32-g++-win32
ICECC[1287] 16:11:31: </building_local: 12379ms>

…поэтому icecc, похоже, не распространяет сборку. Что я делаю неправильно?

Редактировать: для нативной компиляции я использую ccache и CCACHE_PREFIX=icecc, который работает просто отлично (сборка в кластере из 15+ узлов), поэтому icecc, кажется, настроен правильно.

Обновить: Я считаю, что такое поведение вызвано ошибка в ICECC, который теперь должен быть фиксированный в более новых версиях ICECC.

2

Решение

От ПРОЧТИ МЕНЯ

Создайте символические ссылки с именами кросс-компиляторов (например,
arm-eabi- [gcc, g ++] и arm-linux-androideabi- [gcc, g ++]), указывая на
где двоичный файл iccc. Убедитесь, что эти символические ссылки находятся в
$ PATH и до пути цепочек инструментов.

Поскольку вы используете ccache, вы должны добавить следующие символические ссылки к вашему кросс-компилятору внутри /usr/lib/ccache

Ниже приведен пример для кросс-компилятора arm

$ ls -al /usr/lib/ccache
lrwxrwxrwx 1 root root 16 Apr 13 13:25 arm-poky-linux-gnueabi-g++ -> ../../bin/ccache
lrwxrwxrwx 1 root root 16 Apr 13 13:25 arm-poky-linux-gnueabi-gcc -> ../../bin/ccache
.....
2

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]