Создание кросс-скомпилированных файлов 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.