이 페이지는 기계 번역을 사용하여 번역되었습니다. 영어 원문을 보려면 여기를 클릭하십시오.
파일 및 폴더 이름에 대한 빌드 프로세스 지원
공백이 포함된 파일 이름
ToolchainInfo 객체를 사용하는 빌드 프로세스의 경우, 다음 툴체인에서만 공백이 포함된 파일 이름 사용이 지원됩니다:
Linux®에서
GNU gcc/g++ | gmake (64-bit Linux)Windows®에서
MinGW64 | gmake (64-bit Windows)Mac에서
Xcode with Clang | gmake (64-bit Mac)
템플릿 makefile을 사용하는 빌드 프로세스는 공백이 포함된 파일명의 사용을 지원하지 않습니다.
공백이 포함된 폴더 이름
Windows 시스템에서 코드 생성기는 다음 두 가지 조건 중 하나에 해당할 경우, MATLAB® 설치 폴더에 해당하는 드라이브를 매핑합니다:
matlabroot폴더는 UNC 경로입니다.matlabroot폴더의 경로에 공백이 포함되어 있으며, 이 시스템은 대체 이름 기능을 지원하지 않습니다.
이 폴더 경로에는 공백이 포함될 수 있습니다:
MATLAB 설치 폴더(
matlabroot)의 경로입니다. 예를 들어,C:\Program Files\MATLAB\R2015b빌드를 시작하는 현재 작업 폴더(
pwd)로 가는 경로입니다. 예:C:\Users\username\Documents\My Work.빌드 프로세스에서 사용하는 컴파일러의 설치 폴더로 이어지는 경로입니다.
작업 환경에 앞서 언급한 시나리오 중 하나 이상이 해당된다면, 빌드 프로세스에 대해 다음과 같은 지원 체계를 활용하십시오:
생성된 코드를 빌드하기 위해 툴체인 방식을 사용하는 경우, 폴더 이름에 공백이 포함될 때 운영 체제의 지원 여부가 툴체인 작동에 영향을 미칩니다:
8.3 형식 이름 생성이 활성화된 Linux 시스템 및 Windows 시스템의 경우, 툴체인은 운영 체제에서 제공하는 대체 이름을 사용하여 폴더 이름 내의 공백을 처리합니다. 이 툴체인은
TransformPathsWithSpaces특성을 사용하여 이러한 이름을 관리합니다.addAttribute(toolchainObject, 'TransformPathsWithSpaces', true);
드라이브 및 폴더의 보안 권한에 따라 툴체인이 경로를 변환할지 여부가 결정될 수 있습니다. 예를 들어, 경로에 8.3 경로 변환을 허용하지 않는 보안 구성이 적용된 폴더가 포함되어 있는 경우, 툴체인은 해당 경로를 변환하지 않으며 빌드 과정에서 경고가 발생합니다.
8.3 형식 이름 생성이 비활성화된 Windows 시스템의 경우, 툴체인은 배치 파일(.bat)을 사용하여 네트워크 드라이브를 매핑함으로써 폴더 이름에 포함된 공백을 처리합니다. 이 작업을 수행하려면 툴체인 정의에
RequiresBatchFile특성을 추가해야 합니다.addAttribute(toolchainObject, 'RequiresBatchFile', true);
Windows 시스템용 툴체인을 개발할 때는 두 특성을 모두 설정하십시오. 툴체인 특성에 대한 자세한 내용은
addAttribute를 참조하십시오.생성된 코드를 빌드하기 위해 템플릿 makefile 방식을 사용하는 경우, 템플릿 makefile(
.tmf)에서는 폴더 이름에 포함된 공백을 처리하는 코드가 필요합니다. 대체 폴더 이름(Windows 짧은 이름)이 파일 시스템 폴더 이름(Windows 긴 이름)과 다를 경우, 이 코드를 makefile에 추가하십시오.ALT_MATLAB_ROOT = |>ALT_MATLAB_ROOT<| ALT_MATLAB_BIN = |>ALT_MATLAB_BIN<| !if "$(MATLAB_ROOT)" != "$(ALT_MATLAB_ROOT)" MATLAB_ROOT = $(ALT_MATLAB_ROOT) !endif !if "$(MATLAB_BIN)" != "$(ALT_MATLAB_BIN)" MATLAB_BIN = $(ALT_MATLAB_BIN) !endif
위치 토큰의 값이 같지 않을 때, 이 코드는
MATLAB_ROOT를ALT_MATLAB_ROOT로 대체합니다. 이 오류 메시지는 MATLAB 설치 폴더의 경로에 공백이 포함되어 있음을 나타냅니다. 이 코드는MATLAB_BIN를ALT_MATLAB_BIN로 대체하는 것과 동일한 방식을 적용합니다. 앞서 소개한 코드는nmake에 특화된 것입니다. 플랫폼별 예제는 제공된 템플릿 makefile을 참조하십시오.
어느 빌드 방식을 사용하든, 대체 이름(짧은 이름) 생성에 대한 지원에 문제가 있는 경우 Windows에서 빌드 오류가 발생할 수 있습니다. 빌드 생성 과정에서 다음과 유사한 오류 메시지가 표시되면 폴더 이름에 공백이 포함된 경우 오류 해결 방법를 참조하십시오.
NMAKE : fatal error U1073: don't know how to make ' ...system나 dos와 같은 운영 체제 명령어를 사용할 때는, 실행 파일이나 파라미터를 지정하는 경로를 큰따옴표로 묶어야 합니다 (" "). 예를 들면 다음과 같습니다.
system('dir "D:\Applications\Common Files"')이 테이블은 Windows의 빌드 폴더 지원 사항 및 제한 사항에 대한 개요를 제공합니다.
| 빌드 프로세스 폴더 생성 | UNC 또는 공백이 포함된 경로에 대한 처리 방법 | Windows에 대한 지원 |
|---|---|---|
| 빌드 과정에서 다음과 같은 UNC 경로:
다음과 같이 재매핑할 수 있습니다: 짧은 파일 이름(8.3)을 지원하는 Windows 시스템(NTFS를 사용하는 Windows의 기본 설정)에서 빌드하는 동안, 빌드 프로세스는 폴더 위치를 지정하기 위해 Windows API인 짧은 파일 이름(8.3)을 지원하지 않는 Windows 시스템(ReFS를 사용하거나 8.3 지원이 비활성화된 NTFS를 사용하는 시스템)에서 빌드하는 동안, 다음과 같이 경로에 공백이 포함된 위치의 경우:
다음과 같이 재매핑할 수 있습니다: | 파일 시스템(NTFS 또는 ReFS)이나 짧은 파일 이름 지원에 대한 파일 시스템 구성과 관계없이 빌드 프로세스 폴더를 사용할 수 있습니다. 제한 사항 설치 위치에 대한 드라이브 매핑이 필요한 시스템의 경우, 빌드 프로세스를 진행하려면 매핑에 사용할 수 있는 드라이브 문자가 있어야 합니다. 짧은 파일 이름(8.3)을 지원하지 않는 시스템(ReFS를 사용하거나 8.3 지원이 비활성화된 NTFS를 사용하는 경우)에서는 설치 경로의 마지막 폴더명에 공백이 포함되어서는 안 됩니다. 예를 들어, 아래의 최종 폴더 이름은
지원되지 않습니다. |
코드 생성 폴더 시뮬레이션 캐시 폴더 사용자 지정 코드 소스 파일의 위치—이 위치에는 특히 다음으로 지정된 폴더들이 포함됩니다:
| UNC 경로의 경우, 빌드 프로세스는 | 빌드 프로세스 폴더 지원은 파일 시스템(NTFS 또는 ReFS)이나 짧은 경로 이름 지원을 위한 파일 시스템 구성과 무관하게 사용할 수 있습니다. |
공백이 포함된 경로의 경우, 빌드 프로세스는 Windows API를 사용하여 Windows 짧은 경로 이름(8.3)을 사용합니다: | 빌드 프로세스 폴더 지원은 NTFS 파일 시스템에 의존하며, Windows의 기본 지원이 필요합니다. 레지스트리는 다음 항목에 대해 2 또는 0의 값을 설정합니다: 제한 사항 다음의 경우 빌드 프로세스에서 해당 폴더 경로에 공백이 포함된 것을 지원하지 않습니다:
|
폴더 이름에 공백이 포함된 경우 오류 해결 방법
Windows에서 짧은 파일 이름 지원에 문제가 발생하면 빌드 과정에서 오류가 발생할 수 있습니다. 다음과 같은 오류 메시지가 표시될 수 있습니다:
NMAKE : fatal error U1073: don't know how to make 'C:\Work\My'폴더 이름(C:\Work\My Models)에 공백이 포함되어 있어 빌드 프로세스가 빌드할 모델이나 파일을 찾지 못할 경우 이 오류가 발생합니다. 폴더 이름이나 경로에 공백이 포함될 경우 문제가 발생할 수 있는 빌드 관련 폴더에 대한 설명은 공백이 포함된 폴더 이름를 참조하십시오.
Windows 짧은 파일 이름 지원이 비활성화되었을 때 폴더 이름의 공백 관련 문제를 방지하려면, 공백이 포함된 폴더 경로를 사용하지 마십시오. 예를 들어:
타사 소프트웨어를 설치하는 폴더의 경우.
모델, 소스 파일 또는 라이브러리가 포함된 폴더의 경우.
빌드 프로세스는 Windows 시스템에서 파일, 폴더 및 경로에 대한 대체 이름 기능을 사용합니다. 대체 이름 지원에 대해서는 여러 가지 용어가 사용됩니다:
8.3 이름
DOS 경로
짧은 파일 이름 (SFN, ShortFileName)
긴 이름 별칭
Windows 경로 별칭
공백이 포함된 폴더 이름을 사용하는 빌드에서는 Windows 대체 이름 지원 기능을 비활성화할 수 있기 때문에 문제가 발생할 수 있습니다.
드라이브에서 사용하는 파일 시스템의 유형을 확인하십시오. Windows 탐색기에서 드라이브 아이콘을 마우스 오른쪽 버튼으로 클릭한 다음 속성를 선택합니다.
파일, 폴더 및 경로의 짧은 이름을 생성할 수 있도록 하는 Windows 레지스트리 설정을 관리하려면:
Windows 명령 프롬프트를 관리자 권한으로 실행하십시오. 예를 들어, Windows 시작 메뉴에서
cmd를 입력한 다음,cmd.exe아이콘을 마우스 오른쪽 버튼으로 클릭하고Run as administrator를 선택합니다.Windows\System32폴더로 이동한 다음, 다음 명령을 입력하여NtfsDisable8dot3NameCreation의 상태를 쿼리하십시오.fsutil 8dot3name query
레지스트리 상태는 다음 값 중 하나를 가질 수 있습니다.
0 — 시스템의 모든 볼륨에 대해
8dot3이름 생성이 활성화됨1 — 시스템의 모든 볼륨에 대해
8dot3이름 생성이 비활성화됨2 — 볼륨별로
8dot3이름 생성을 설정할 수 있음3 — 시스템 볼륨을 제외한 모든 볼륨에 대해
8dot3이름 생성이 비활성화됨
NtfsDisable8dot3NameCreation의 레지스트리 상태가 2라고 가정합시다. 다음 명령을 입력하면 특정 드라이브(예:D)에 대해8dot3이름 생성을 활성화할 수 있습니다:fsutil 8dot3name set D: 0
그런 다음 컴퓨터를 재부팅하십시오. 레지스트리 설정을 변경하면, 변경 이후에 생성되는 파일과 폴더에 대해서만 짧은 이름이 생성됩니다.
짧은 이름 생성을 활성화하는 방법에 대한 자세한 내용은 https://learn.microsoft.com/en-us/windows-server/administration/windows-commands/fsutil-8dot3name를 참조하십시오.
이전에는 짧은 이름 생성이 비활성화된 상태에서 생성된 파일의 짧은 이름을 만들려면 다음 명령을 사용하십시오:
fsutil file setshortname fileName shortName
예를 들어, 긴 이름 C:\Program Files에 대한 짧은 이름 PROGRA~1를 만들려면 다음을 입력하세요:
fsutil file setshortname "C:\Program Files" PROGRA~1
C:\Program Files 폴더 이름은 공백이 포함되어 있기 때문에 따옴표로 묶여 있습니다.
짧은 이름이 생성되었는지 확인하려면, dir 명령에 /x 옵션을 지정하여 짧은 이름을 표시하십시오.
dir C:\ /x
특수 문자가 포함된 폴더 이름
빌드 관련 폴더 경로에 다음이 포함되어 있는 경우 빌드 과정에서 오류가 발생할 수 있습니다:
시스템 로케일에 속하지 않는 Unicode® 문자. 빌드 프로세스에서 Microsoft® Visual C++® 컴파일러를 사용하는 경우에는 이 제한 사항이 적용되지 않습니다.
마지막 바이트가 16진수
5C와 동일한 일본어(멀티바이트) 문자. make 및 컴파일러 툴이 마지막 바이트를'\'(백슬래시) 문자로 잘못 해석할 수 있습니다.다음 문자 중 하나 이상:
'&'(앰퍼샌드)':'(콜론)';'(세미콜론)'$'(달러 기호)'('(왼쪽 괄호)')'(오른쪽 괄호)'^'(서큘렘스 악센트)
매우 긴 폴더 경로
MinGW® 컴파일러의 경우, 명령줄 길이가 Windows의 제한인 32,767자를 초과하면 빌드 과정에서 오류가 발생합니다. 이 오류가 발생하면 포함 경로의 길이를 확인하십시오. 이름이 더 짧은 코드 생성 폴더에서 생성된 코드를 빌드하면 명령줄 길이를 줄일 수 있습니다.
참고 항목
도움말 항목
- 빌드 프로세스 폴더 관리
- Manage Build Process Files
- Manage Build Process File Dependencies
- Add Build Process Dependencies
- Build Process Workflow for Real-Time Systems
외부 웹사이트
- https://www.mathworks.com/matlabcentral/answers/95399-why-is-the-build-process-failing-with-error-code-nmake-fatal-error-u1073-don-t-know-how-to-make
- https://learn.microsoft.com/previous-versions/windows/it-pro/windows-2000-server/cc959352(v=technet.10)
- https://learn.microsoft.com/previous-versions/windows/it-pro/windows-server-2012-R2-and-2012/ff621566(v=ws.11)