我实现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