이 페이지는 기계 번역을 사용하여 번역되었습니다. 영어 원문을 보려면 여기를 클릭하십시오.
Windows Subsystem for Linux에서 코드 빌드하기
Windows® 컴퓨터에 Windows Subsystem for Linux(WSL)를 설치하면, CMake 툴체인 정의를 사용하여 WSL 환경에서 생성된 코드를 빌드할 수 있습니다. 예를 들어, 다음을 수행할 수 있습니다.
Linux® 컴퓨터용으로 생성된 코드를 크로스 컴파일합니다.
Linux가 지원하는 툴체인을 사용하여 타깃 하드웨어용 생성 코드를 빌드하십시오.
Embedded Coder® Support Package for Linux Applications를 사용하여 AUTOSAR Adaptive 또는 DDS Blockset 코드를 빌드하십시오.
Windows 보호 모델에서 생성된 코드를 Linux 컴퓨터용으로 크로스 컴파일합니다.
빌드 프로세스에서는 다음을 지정할 수 있습니다:
사전 정의된 툴체인
GNU gcc/g++ | CMake/gmake (Windows Subsystem for Linux)target네임스페이스를 사용하여 생성하는 사용자 지정 툴체인 정의
환경 설정
코드 생성을 위해 생성된 코드를 빌드하기 전에 다음 단계를 수행해야 합니다:
Windows 컴퓨터에 Windows Subsystem for Linux(WSL) 서브시스템을 설치하세요.
WSL 환경에서 Linux 배포판(예: Debian®)을 설치하십시오.
Linux 배포판에서 CMake와 필요한 빌드 툴(예: GNU® Make, GCC 및 G++ 컴파일러)을 설치하십시오.
WSL 환경 내에서 Windows 파일 시스템에 있는 코드 생성 및 MATLAB® 설치 폴더에 접근할 수 있는지 확인하십시오. DrvFs 파일 시스템 플러그인을 사용하여 마운트 지점을 생성함으로써 해당 폴더에 대한 액세스 권한을 부여할 수 있습니다. 자세한 내용은 WSL 2에서 Linux 디스크 마운트하기를 참조하세요.
예를 들어, 두 폴더가 모두
C:드라이브에 있는 경우 다음 사항을 확인하십시오:WSL 파일 시스템의
/mnt/c는 Windows 파일 시스템에 있는C:드라이브를 가리킵니다.마운트 지점에 읽기/쓰기 권한이 있습니다.
WSL 환경 내의 기본 사용자가 해당 마운트 지점의 소유자입니다.
WSL에서 사전 정의된 툴체인 지정하기
생성된 코드를 빌드하기 전에, 구성 파라미터 대화 상자에서:
장치 공급업체를
Intel로, 장치 유형를x86-64 (Linux 64)로 설정하십시오.툴체인를
GNU gcc/g++ | CMake/gmake (Windows Subsystem for Linux)로 설정하십시오.
모델(Ctrl+B)을 빌드할 때, 빌드 프로세스는 지정된 툴체인을 사용하여 생성된 코드를 빌드합니다.
WSL용 사용자 지정 툴체인 정의 만들기
이 명령줄 예제는 다음을 전제로 합니다:
WSL 환경에 Debian Linux 배포판이 설치되었습니다.
Debian Linux 배포판에는 CMake, Ninja 빌드 시스템 및 AArch64 크로스 컴파일러가 설치되어 있습니다.
WSL에서 실행되는 CMake 기반 툴체인을 정의합니다.
aarchTc = target.create('Toolchain', ... 'Name', 'GNU gcc/g++ aarch64 | CMake/Ninja', ... 'MakeToolType', 'CMake', ... 'Generator', 'Ninja', ... 'RunsOn', target.ExecutionContext.WSL); aarchTc.HostOperatingSystemSupport = target.HostOperatingSystemSupport.WindowsOnly;
사용자 지정을 통해 크로스 컴파일러를 사용하도록 툴체인을 구성하십시오.
aarchTc.Builder.CommandLineCacheEntries(end+1) = target.create('CMakeCacheEntry', ... 'Name', 'CMAKE_C_COMPILER', ... 'Value', 'aarch64-linux-gnu-gcc'); aarchTc.Builder.CommandLineCacheEntries(end+1) = target.create('CMakeCacheEntry', ... 'Name', 'CMAKE_CXX_COMPILER', ... 'Value', 'aarch64-linux-gnu-g++'); aarchTc.Builder.CommandLineCacheEntries(end+1) = target.create('CMakeCacheEntry', ... 'Name', 'CMAKE_SYSTEM_NAME', ... 'Value', 'Linux'); aarchTc.Builder.CommandLineCacheEntries(end+1) = target.create('CMakeCacheEntry', ... 'Name', 'CMAKE_FIND_ROOT_PATH', ... 'Value', '/usr/aarch64-linux-gnu'); aarchTc.Builder.CommandLineCacheEntries(end+1) = target.create('CMakeCacheEntry', ... 'Name', 'CMAKE_FIND_ROOT_PATH_MODE_PROGRAM', ... 'Value', 'NEVER'); aarchTc.Builder.CommandLineCacheEntries(end+1) = target.create('CMakeCacheEntry', ... 'Name', 'CMAKE_FIND_ROOT_PATH_MODE_LIBRARY', ... 'Value', 'ONLY'); aarchTc.Builder.CommandLineCacheEntries(end+1) = target.create('CMakeCacheEntry', ... 'Name', 'CMAKE_FIND_ROOT_PATH_MODE_INCLUDE', ... 'Value', 'ONLY');
툴체인 정의를 내부 데이터베이스에 추가합니다.
target.add(aarchTc)
모델 구성에서 툴체인 정의를 지정하십시오.
modelName = 'myModel'; load_system(modelName); set_param(modelName, ... 'ProdHWDeviceType', 'ARM Compatible->ARM 64-bit (LP64)'); set_param(modelName, ... 'Toolchain', aarchTc.Name);
예를 들어, slbuild(modelName)를 실행하여 모델을 빌드할 때, 빌드 프로세스는 사용자 지정 툴체인을 사용하여 생성된 코드를 빌드합니다.
내부 데이터베이스에서 사용자 지정 툴체인 정의를 삭제하려면 다음 명령어를 입력하십시오.
customToolChainDef = target.get('Toolchain', ... 'GNU gcc/g++ aarch64 | CMake/Ninja'); target.remove(customToolChainDef);
참고 항목
slbuild | target | target.create | target.Toolchain | target.CMake | target.CMakeBuilder | target.CMakeBuildType | target.CMakeCacheEntry
도움말 항목
- Simulink 모델로부터 생성된 코드의 빌드에 대한 접근법
- Configure CMake Build Process
- Embedded Coder Support Package for Linux Applications 시작하기 (Embedded Coder)