我實現web使用libwebsockets(LWS)在嵌入式ARM處理器的服務器。在我學習LWS時,我正在Ubuntu上測試gcc上的服務器。我有服務器作爲gcc構建工作,但現在想要爲ARM板構建交叉編譯版本。大廈交叉編譯ARM文件libwebsockets,除了GCC文件
我創建了一個工具鏈文件:
// 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編譯目錄中創建一個build目錄。
GCC: libwebsockets > build
ARM: libwebsockets > buildx
通過cmake的,CMakeList.txt所需的文件,是在當cmake的被調用(對於GCC),其被引用 「libwebsockets」:
cmake ..
或用於臂的linux-GCC:
cmake .. -DCMAKE_TOOLCHAIN_FILE=../arm-linuc-gcc.cmake
但是運行這最後一行更新了一些文件(如cmake緩存)並且不會創建構建文件。
如何構建ARM文件?我是否需要刪除現有的gcc版本才能創建新版本?
感謝您的幫助!
如果從'buildx'刪除一切並調用會發生什麼'cmake的.. -DCMAKE_TOOLCHAIN_FILE = .. /再次手臂,linuc-gcc.cmake'? – yegorich
@yegorich就是這樣,buildx中沒有任何東西,因爲它不會構建。見下面的答案。 – Gordon