크로스 컴파일 - Tool chain

박남호·2023년 3월 7일
0

라이브러리 파일을 크로스 컴파일해서 쓸 일이 있어서 스터디하다가 tool chain에 대해서 좀 적어보고자한다. cmake를 할 때 타겟보드 환경?을 설정 해준다고 생각하면 될 것 같다.

일단 main.c에 Test123를 출력하는 코드를 작성한다.

CMake 를 사용하는 모든 프로젝트에는 반드시 프로젝트 최상위 디렉토리에 CMakeLists.txt 파일이 있어야 한다. 해당 파일에는 CMake 가 빌드 파일을 생성하는데 필요한 정보들이 들어 있다. 따라서 보통의 컴파일 과정은 다음과 같이 진행된다.

내용 참조 : https://modoocode.com/332

CMakelists.txt의 작성법은 위에 잘 나와있으니 참고하면 될것 같다.

위 이미지는 본인이 작성한 CMakeLists.txt 파일이다. main.c를 컴파일해서 tapp 실행 파일을 만들 것이라는 내용이다. 여기서 toolchain을 추가하지 않고 cmake를 해보겠다.

디폴트 gcc로 cmake가 된다. 즉 지금 작업환경에서 컴파일이 되고 실행파일 또한 지금 작업환경에서 정상 실행 된다.

이제 toolchain을 추가해서 cmake를 진행해보겠다. toolchain.arm.cmake 파일의 내용은 아래와 같다.

단순 경로 셋팅과 컴파일 매칭 정도로 생각하면 될것 같다.
그럼 이제 toolchain으로 cmake를 해보겠다. DCMAKE_TOOLCHAIN_FILE : 툴체인을 명시한 toolchain.arm.cmake 파일의 경로를 지정한다. 역시 각자 환경에 맞게 수정하자.


여기서 주의할 점은 기존의 로 생겨난 파일들을 모두 삭제해주고 하는 것이 정신건강에 좋다. 어쨋든 cmake -DCMAKE_TOOLCHAIN_FILE=toolchain.arm.cmake . 명령어를 실행하고나면 Makefile이 생긴다. 이제 make를 하면 tapp 실행파일이 생성된 것을 볼 수 있다. 당연히 현재 작업환경에서는 실행이 되지않는다. 이제 타겟보드에서 제대로 동작하는지 확인을 해보자.

타겟보드에서 Test123이 정상 출려되는 것을 확인할 수 있다.

profile
NamoPark

0개의 댓글