Создание кросс-скомпилированных файлов ARM для libwebsockets, в дополнение к файлам GCC

Я реализую веб-сервер, используя libwebsockets (LWS) для встроенного процессора ARM. Я тестирую сервер на gcc в Ubuntu, когда узнаю о LWS. У меня есть сервер, работающий как сборка gcc, но теперь я хочу собрать кросс-скомпилированную версию для платы ARM.

Я создал файл цепочки инструментов:

// Set the path to ARM directories to just above the bin directory
set(CROSS_PATH usr/local/opt/crosstool/arm-linux/gcc-3.3.4-glibc-2.3.2)

// Target operating system name
set(CMAKE_SYSTEM_NAME Linux)

// Name of C compiler
set(CMAKE_C_COMPILER "${CROSS_PATH}/bin/arm-linux-gcc")
set(CMAKE_CXX_COMPILER "${CROSS_PATH}/bin/arm-linux-g++")

// Where to look for the target environment. (More paths can be added here)
set(CMAKE_FIND_ROOT_PATH "${CROSS_PATH}")

// Adjust the default behavior of the FIND_XXX() commands:
// search programs in the host environment only.
set(CMAKE_FIND_ROOT_PATH_MODE_PROGRAM NEVER)

// Search headers and libraries in the target environment only.
set(CMAKE_FIND_ROOT_PATH_MODE_LIBRARY ONLY)
set(CMAKE_FIND_ROOT_PATH_MODE_INCLUDE ONLY)

Я создал каталог сборки на том же уровне, что и мой каталог сборки gcc.

GCC:  libwebsockets > build
ARM:  libwebsockets > buildx

Файл, необходимый для cmake, CMakeList.txt, находится в "libwebsockets", на который ссылается, когда вызывается cmake (для gcc):

cmake ..

или для arm-linux-gcc:

cmake .. -DCMAKE_TOOLCHAIN_FILE=../arm-linuc-gcc.cmake

Но выполнение этой последней строки обновляет несколько файлов (например, кеш cmake) и не создает файлы сборки.

Как мне создать файлы ARM? Требуется ли удалить существующую сборку gcc перед созданием новой сборки?

Спасибо за вашу помощь!

1 ответ

Решение

Инструкции для lwsws .exe для libwebsockets (warmcat), размещенные на github, указывают, что вы начинаете с пустого каталога сборки. Я понял это в существующей структуре LWS.

Но вы не можете собрать другой компилятор в существующем компиляторе.

Итак, я клонировал LWS в пути кросс-компиляции и создал новые файлы сборки с новой копией cmake (CMakeLists.txt), которая была загружена с LWS.

Это решило проблему возможности создавать новые файлы сборки, но моя настройка набора инструментов все еще компилируется для gcc вместо arm-linux-gcc. Но это проблема для нового вопроса stackru (скоро...).

Веб-сайт, который помог мне (косвенно): https://gist.github.com/maoueh/14ef25a03d5722bc1e03 На LWS есть раздел, в котором показано создание новой сборки LWS.

Другие вопросы по тегам