2017-09-28 15 views
0

임베디드 ARM 프로세서 용 libwebsockets (LWS)을 사용하여 웹 서버를 구현하고 있습니다. 나는 LWS에 대해 배울 때 우분투의 gcc에서 서버를 테스트하고있다. gcc 빌드로 작동하는 서버를 가지고 있지만 이제는 ARM 보드 용으로 크로스 컴파일 된 버전을 빌드하려고합니다. 내 GCC 빌드 디렉토리와 동일한 레벨에서 빌드 디렉토리를 생성GCC 파일 외에도 libwebsockets 용 교차 컴파일 된 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: libwebsockets > build 
ARM: libwebsockets > buildx 

cmake, CMakeList.txt에 필요한 파일, cmake이 (GCC 용)를 호출 할 때 참조하는 "libwebsockets"에 있습니다

cmake .. 

또는 팔 - 리눅스 GCC에 대한

:

하지만이 마지막 줄을 실행하면 몇 파일 (예 : cmake 캐시)을 업데이트하고 빌드 파일을 만들지 않습니다.

어떻게 ARM 파일을 빌드 할 수 있습니까? 새 빌드를 만들기 전에 기존 gcc 빌드를 삭제해야합니까?

도움 주셔서 감사합니다.

+0

'buildx'에서 모든 것을 제거하고'cmake .. -DCMAKE_TOOLCHAIN_FILE = ../arm-linuc-gcc.cmake'를 다시 호출하면 어떻게됩니까? – yegorich

+0

@yegorich 그게 바로 그것입니다. 빌드되지 않기 때문에 buildx에는 아무 것도 없습니다. 아래 답변을 참조하십시오. – Gordon

답변

0

github에 게시 된 libwebsockets (warmcat)의 lwsws .exe에 대한 지침은 빈 빌드 디렉토리로 시작한다는 것을 지정합니다. 나는 이것을 기존의 LWS 프레임 워크 내에서 의미있게 사용했다.

하지만 기존 컴파일러 내에서 다른 컴파일러를 빌드 할 수는 없습니다.

그래서 크로스 컴파일러 경로에 LWS를 복제하고 LWS로로드 된 cmake (CMakeLists.txt)의 새로운 복사본으로 새로운 빌드 파일을 만들었습니다.

새로운 빌드 파일을 만들 수있는 문제가 해결되었지만 arm-linux-gcc 대신 툴체인 설정이 여전히 gcc 용으로 컴파일됩니다. 하지만 그것은 새로운 stackoverflow 질문 (곧 온다 ...)에 대한 문제입니다.

나를 (기울어 짐) 도왔던 웹 사이트는 다음과 같습니다. https://gist.github.com/maoueh/14ef25a03d5722bc1e03 새 LWS 빌드를 만드는 LWS 섹션이 있습니다.