1) cmake 로 CrossCompile 하기 위해서는 arm.toolchain 파일을 생성 합니다.
cmake 실행 폴더의 위치에 파일을 생성하고 아래와 같이
CrossCompiler의 경로 및 SYSTEM이 arm 임을 지정하는 파일을 생성합니다.
해당 설정의 자신의 상황에 맞게 변경해야 합니다.
SET(CMAKE_SYSTEM_NAME Linux)
SET(CMAKE_SYSTEM_PROCESSOR arm)
# specify the cross compiler
SET(COMPILER_ROOT < 자신의 경로/bin/arm-buildroot-linux-gnueabihf- >)
SET(CMAKE_C_COMPILER ${COMPILER_ROOT}gcc)
SET(CMAKE_CXX_COMPILER ${COMPILER_ROOT}g++)
SET(CMAKE_LINKER ${COMPILER_ROOT}ld)
SET(CMAKE_NM ${COMPILER_ROOT}nm)
SET(CMAKE_OBJCOPY ${COMPILER_ROOT}objcopy)
SET(CMAKE_OBJDUMP ${COMPILER_ROOT}objdump)
SET(CMAKE_RANLIB ${COMPILER_ROOT}ranlib)
set(CMAKE_FIND_ROOT_PATH_MODE_PROGRAM NEVER)
set(CMAKE_FIND_ROOT_PATH_MODE_LIBRARY ONLY)
set(CMAKE_FIND_ROOT_PATH_MODE_INCLUDE ONLY)
2) cmake 실행
cmake가 toolchain을 정상적으로 인식하도록 만든 파일을 옵션으로 아래와 같이 실행합니다.
cmake -DCMAKE_TOOLCHAIN_FILE=arm.toolchain .
3) make 를 실행
make
4) 생성된 파일이 정상적으로 되었는지 확인을 하는 방법은 file 명령어를 이용합니다.
$ file hello 실행
아래는 HOST PC 환경으로 빌드한 파일 입니다. ( 64bit , x86-64 ... )
아래는 이번에 적용한 arm 환경으로 CrossCompile 한 파일 입니다. (32bit , ARM ...)
위와같이 생성된 파일의 정보를 확인해 빌드가 정상적으로 되었는지 확인이 가능합니다.
아래와 같이 ARM 용으로 빌드가 되면 HOST PC에서는 정상적으로 실행되지 않습니다.
이상입니다.
'취미 > linux 기초' 카테고리의 다른 글
Linux 에서 gcc-arm-linux-gnueabihf 설치 버전 지정 (0) | 2022.10.21 |
---|---|
linux 파일 링크 만들기 (0) | 2022.10.21 |
cmake 로 hello world 빌드하기 (0) | 2022.10.20 |
linux network 설정 자동실행 (2) (0) | 2022.10.18 |
linux network 설정 자동실행 (1) (0) | 2022.10.18 |
댓글