대체 함수
qmake는 구성 과정에서 변수의 내용을 처리하기 위한 함수를 제공합니다. 이러한 함수를 대체 함수라고 합니다. 일반적으로 이 함수들은 다른 변수에 할당할 수 있는 값을 반환합니다. 함수 앞에 ` $$ ` 연산자를 붙여 이 값들을 얻을 수 있습니다. 대체 함수는 내장 함수와 함수 라이브러리로 나눌 수 있습니다.
‘테스트 함수’ 항목도 참조하십시오.
내장 대체 함수
기본 대체 함수는 내장 함수로 구현되어 있습니다.
absolute_path(path[, base])
path 의 절대 경로를 반환합니다.
base 가 지정되지 않은 경우, 현재 디렉터리를 기본 디렉터리로 사용합니다. 상대 경로인 경우, 사용하기 전에 현재 디렉터리를 기준으로 변환됩니다.
예를 들어, 다음 호출은 문자열 "/home/johndoe/myproject/readme.txt" 을 반환합니다:
message($$absolute_path("readme.txt", "/home/johndoe/myproject"))이 함수는 Qt 5.0에서 도입되었습니다.
clean_path(), relative_path()도 참조하십시오.
basename(변수명)
variablename 에 지정된 파일의 기본 이름을 반환합니다.
예를 들어:
FILE = /etc/passwd
FILENAME = $$basename(FILE) #passwdcat(filename[, mode])
filename 의 내용을 반환합니다. mode 에 대해 다음 옵션을 지정할 수 있습니다:
blob파일의 전체 내용을 하나의 값으로 반환합니다lines각 줄을 별도의 값으로 반환합니다(줄 끝 표시 없이)true(기본값) 및 `false`은 qmake 값 목록 분할 규칙(변수 할당과 동일)에 따라 분할된 별도의 값으로 파일 내용을 반환합니다. `mode`이 `false`인 경우, 파일 내 줄 바꿈 위치를 나타내기 위해 줄바꿈 문자만 포함된 값이 목록에 삽입됩니다.
clean_path(path)
디렉터리 구분자를 정규화(“/”로 변환)하고 중복된 구분자를 제거하며, “.”와 “..”을 (가능한 한) 해결한 path 를 반환합니다. 이 함수는 QDir::cleanPath 를 감싸는 래퍼 함수입니다.
이 함수는 Qt 5.0에서 도입되었습니다.
absolute_path(), relative_path(), shell_path(), system_path()도 참조하십시오.
dirname(file)
지정된 파일의 디렉터리 이름 부분을 반환합니다. 예:
FILE = /etc/X11R6/XF86Config
DIRNAME = $$dirname(FILE) #/etc/X11R6enumerate_vars
정의된 모든 변수 이름의 목록을 반환합니다.
이 함수는 Qt 5.0에서 도입되었습니다.
escape_expand(arg1 [, arg2 ..., argn])
임의의 개수의 인수를 받아들입니다. 각 인수에 대해 이스케이프 시퀀스 \n, \r, \t 를 확장하고, 인수를 리스트 형태로 반환합니다.
참고: 확장할 문자열을 리터럴로 지정하는경우 , 다음 코드 예시에서 볼 수 있듯이 백슬래시를 이스케이프 처리해야 합니다:
message("First line$$escape_expand(\\n)Second line")find(변수명, substr)
variablename 에 있는 값 중 정규 표현식 substr 과 일치하는 모든 값을 반환합니다.
MY_VAR = one two three four
MY_VAR2 = $$join(MY_VAR, " -L", -L) -Lfive
MY_VAR3 = $$member(MY_VAR, 2) $$find(MY_VAR, t.*)MY_VAR2에는 '-Lone -Ltwo -Lthree -Lfour -Lfive'가, MY_VAR3에는 'three two three'가 포함됩니다.
files(pattern[, recursive=false])
지정된 와일드카드 패턴을 확장하여 파일 이름 목록을 반환합니다. recursive 가 true인 경우, 이 함수는 하위 디렉터리로 재귀적으로 탐색합니다.
first(변수명)
variablename 의 첫 번째 값을 반환합니다.
예를 들어, 다음 호출은 ` firstname`를 반환합니다:
CONTACT = firstname middlename surname phone
message($$first(CONTACT))take_first(), last()도 참조하십시오.
format_number(number[, options...])
options 에서 지정한 형식으로 number 를 반환합니다. 다음 옵션을 지정할 수 있습니다:
ibase=n입력의 기수를nobase=n출력의 기수를nwidth=n출력의 최소 너비를n로 설정합니다. 출력이width보다 짧을 경우 공백으로 채웁니다zeropad출력을 공백 대신 0으로 채웁니다padsign출력의 양수 값 앞에 공백을 추가합니다alwayssign출력값 중 양수 앞에 더하기 기호를 추가합니다leftalign출력 값의 오른쪽에 패딩을 추가합니다
현재 부동 소수점 수는 지원되지 않습니다.
예를 들어, 다음 호출은 16진수 BAD 을 002989 으로 변환합니다:
message($$format_number(BAD, ibase=16 width=6 zeropad))이 함수는 Qt 5.0에서 도입되었습니다.
fromfile(filename, variablename)
filename 을 qmake 프로젝트 파일로 해석하여 variablename 에 할당된 값을 반환합니다.
infile()도 참조하십시오.
getenv(variablename)
환경 변수 variablename 의 값을 반환합니다. 이는 대체로 $$(variablename) 구문과 동일합니다. 그러나 getenv 함수는 이름에 괄호가 포함된 환경 변수를 지원합니다.
이 함수는 Qt 5.12에서 도입되었습니다.
join(변수명, 접합자, 앞부분, 뒷부분)
variablename 의 값과 glue 을 결합합니다. 이 값이 비어 있지 않은 경우, 이 함수는 값의 앞부분에 before 을, 뒷부분에 after 을 추가합니다. variablename 은 유일한 필수 항목이며, 나머지 항목은 기본적으로 빈 문자열로 설정됩니다. glue, before 또는 after 내의 공백을 인코딩해야 하는 경우, 해당 공백을 따옴표로 묶어야 합니다.
last(변수명)
variablename 의 마지막 값을 반환합니다.
예를 들어, 다음 호출은 ` phone`를 반환합니다:
CONTACT = firstname middlename surname phone
message($$last(CONTACT))take_last(), first()도 참조하십시오.
list(arg1 [, arg2 ..., argn])
임의의 개수의 인자를 받습니다. 이 함수는 인자들의 리스트를 포함하는 고유한 이름의 변수를 생성하고, 해당 변수의 이름을 반환합니다. 다음 코드 조각에서 보여주는 것처럼 이 변수를 사용하여 루프를 작성할 수 있습니다.
for(var, $$list(foo bar baz)) {
...
}다음과 같은 방식 대신:
values = foo bar baz
for(var, values) {
...
}lower(arg1 [, arg2 ..., argn])
임의의 개수의 인수를 받아 소문자로 변환합니다.
upper()도 참조하십시오.
member(변수명 [, 시작 [, 끝]])
variablename 의 리스트 값 중에서 start 과 end (양쪽 끝 포함) 사이의 0을 기준으로 한 요소 인덱스를 가진 슬라이스를 반환합니다.
start 가 지정되지 않으면 기본값은 0입니다. 이 사용법은 $$first(variablename) 와 동일합니다.
end 가 지정되지 않으면 기본값은 start 입니다. 이 사용법은 정확히 하나의 요소만 반환되므로 단순한 배열 인덱싱을 나타냅니다.
두 개의 점(.)으로 숫자를 구분하여 시작 인덱스와 끝 인덱스를 하나의 인자로 지정할 수도 있습니다.
음수는 리스트의 끝에서 시작하는 인덱스를 나타내며, -1은 마지막 요소를 의미합니다.
두 인덱스 중 하나라도 범위를 벗어날 경우, 빈 리스트가 반환됩니다.
end 가 start 보다 작으면, 요소들은 역순으로 반환됩니다.
참고: 끝 인덱스가 포함되며 순서가 정해지지 않았다는사실은 , 인덱스가 유효하지 않은 경우(입력 변수가 비어 있는 것으로 암시됨)에만 빈 리스트가 반환된다는 것을 의미합니다.
str_member()도 참조하십시오.
num_add(arg1 [, arg2 ..., argn])
임의의 개수의 숫자 인자를 받아 합산한 후, 그 합계를 반환합니다.
숫자 값 앞에 마이너스 기호를 붙이기만 하면 부호를 반전시킬 수 있으므로, 뺄셈도 암시적으로 지원됩니다:
sum = $$num_add($$first, -$$second)피연산자가 이미 음수일 수 있으므로, 숫자를 정규화하기 위해 추가 단계가 필요합니다:
second_neg = -$$second
second_neg ~= s/^--//
sum = $$num_add($$first, $$second_neg)이 함수는 Qt 5.8에서 도입되었습니다.
prompt(question [, decorate])
지정된 질문문( question)을 표시하고, 표준 입력(stdin)에서 읽은 값을 반환합니다.
decorate 가 true (기본값)인 경우, 질문에는 프롬프트임을 나타내는 일반적인 접두사와 접미사가 붙습니다.
quote(string)
string 전체를 단일 엔티티로 변환하여 그 결과를 반환합니다. 이는 문자열을 큰따옴표로 묶는 것을 좀 더 세련되게 표현한 것에 불과합니다.
re_escape(string)
모든 특수 정규식 문자를 백슬래시로 이스케이프 처리한 string 를 반환합니다. 이 함수는 QRegularExpression::escape 를 감싸는 래퍼 함수입니다.
read_registry(tree, key[, flag])
트리 tree 내의 레지스트리 키 key 값을 반환합니다.
HKEY_CURRENT_USER (HKCU) 및 HKEY_LOCAL_MACHINE (HKLM) 트리만 지원됩니다.
flag 은 WOW64_32KEY (32) 또는 WOW64_64KEY (64)일 수 있습니다.
참고: 이 함수는 Windows 호스트에서만 사용할 수 있습니다.
이 함수는 Qt 5.12.1에서 도입되었습니다.
relative_path(filePath[, base])
base 를 기준으로 filePath 에 대한 경로를 반환합니다.
base 가 지정되지 않은 경우, 현재 프로젝트 디렉터리가 사용됩니다. 상대 경로인 경우, 사용하기 전에 현재 프로젝트 디렉터리를 기준으로 경로가 해결됩니다.
filePath 가 상대 경로인 경우, 먼저 base 디렉터리를 기준으로 경로가 해결되며, 이 경우 이 함수는 사실상 $$clean_path()와 동일하게 작동합니다.
이 함수는 Qt 5.0에서 도입되었습니다.
absolute_path(), clean_path()도 참조하십시오.
replace(string, old_string, new_string)
string 로 전달된 변수의 내용에서 old_string 가 나타나는 모든 부분을 new_string 로 대체합니다. 예를 들어, 다음 코드는
MESSAGE = This is a tent.
message($$replace(MESSAGE, tent, test))다음 메시지를 출력합니다:
This is a test.resolve_depends(변수명, 접두사)
이 함수는 내부 함수이므로 일반적으로 사용할 필요가 없습니다.
이 함수는 Qt 5.0에서 도입되었습니다.
reverse(variablename)
variablename 의 값을 역순으로 반환합니다.
이 함수는 Qt 5.0에서 도입되었습니다.
section(변수명, 구분자, 시작, 끝)
variablename 의 값 중 특정 구간을 반환합니다. 이 함수는 QString::section 를 래핑한 함수입니다.
예를 들어, 다음 호출은 ` surname`를 출력합니다:
CONTACT = firstname:middlename:surname:phone
message($$section(CONTACT, :, 2, 2))shadowed(path)
프로젝트 소스 디렉터리에서 빌드 디렉터리로의 경로를 매핑합니다. 이 함수는 소스 내 빌드(in-source builds)의 경우 path 를 반환합니다. path 가 소스 트리 외부로 가리키는 경우 빈 문자열을 반환합니다.
이 함수는 Qt 5.0에서 도입되었습니다.
shell_path(path)
path 내의 모든 디렉터리 구분 기호를 프로젝트 빌드 시 사용되는 셸(즉, make 도구에 의해 호출되는 셸)과 호환되는 구분 기호로 변환합니다. 예를 들어, Windows 셸을 사용할 경우 슬래시(/)는 백슬래시(\)로 변환됩니다.
이 함수는 Qt 5.0에서 도입되었습니다.
system_path()도 참조하십시오.
shell_quote(arg)
프로젝트 빌드 시 사용되는 셸에 맞게 arg 을 따옴표로 묶습니다.
이 함수는 Qt 5.0에서 도입되었습니다.
system_quote()도 참조하십시오.
size(변수명)
variablename 의 값 개수를 반환합니다.
str_size()도 참조하십시오.
sort_depends(변수명, 접두사)
이 함수는 일반적으로 사용할 필요가 없는 내부 함수입니다.
이 함수는 Qt 5.0에서 도입되었습니다.
sorted(변수명)
variablename 에 있는 값 목록을 ASCII 오름차순으로 정렬하여 반환합니다.
format_number() 함수를 사용하여 값을 고정 길이로 0으로 채우면 숫자 정렬을 수행할 수 있습니다.
이 함수는 Qt 5.8에서 도입되었습니다.
split(변수명, 구분자)
variablename 의 값을 개별 값으로 분할하여 리스트 형태로 반환합니다. 이 함수는 QString::split 를 래핑한 함수입니다.
예:
CONTACT = firstname:middlename:surname:phone
message($$split(CONTACT, :))sprintf(string, arguments...)
string 내의 %1-%9를 arguments 함수의 쉼표로 구분된 인수 목록으로 대체하고, 처리된 문자열을 반환합니다.
str_member(arg [, start [, end]])
이 함수는 member()과 동일하지만, 리스트 변수 대신 문자열 값을 대상으로 처리하며, 따라서 인덱스는 문자 위치를 가리킵니다.
이 함수는 다음과 같은 일반적인 문자열 슬라이싱 연산을 구현하는 데 사용할 수 있습니다:
# $$left(VAR, len)
left = $$str_member(VAR, 0, $$num_add($$len, -1))
# $$right(VAR, len)
right = $$str_member(VAR, -$$num, -1)
# $$mid(VAR, off, len)
mid = $$str_member(VAR, $$off, $$num_add($$off, $$len, -1))
# $$mid(VAR, off)
mid = $$str_member(VAR, $$off, -1)
# $$reverse(VAR)
reverse = $$str_member(VAR, -1, 0)참고: 이러한구현에서는 0 len 인 인수를 별도로 처리해야 합니다.
이 함수는 Qt 5.8에서 도입되었습니다.
str_size(arg)
인수의 문자 수를 반환합니다.
size()도 참조하십시오.
이 함수는 Qt 5.8에서 도입되었습니다.
system(command[, mode[, stsvar]])
system 함수의 이 변형을 사용하여 명령어의 stdout을 가져와 변수에 할당할 수 있습니다.
예를 들어:
UNAME = $$system(uname -s)
contains( UNAME, [lL]inux ):message( This looks like Linux ($$UNAME) to me )$$cat()과 마찬가지로, mode 인수는 blob, lines, true, false 을 값으로 받아들입니다. 그러나 기존 단어 분할 규칙(즉, 빈 문자열 또는 true, false)은 미묘하게 다릅니다.
stsvar 를 전달하면, 명령어의 종료 상태가 해당 변수에 저장됩니다. 명령어가 비정상 종료되면 상태는 -1이 되고, 그렇지 않은 경우 명령어가 선택한 0 이상의 종료 코드가 저장됩니다. 일반적으로 상태를 0(성공)과 비교하는 것으로 충분합니다.
system()의 test 변형도 참조하십시오.
system_path(path)
path 내의 모든 디렉터리 구분 기호를, system() 함수가 명령을 호출할 때 사용하는 셸과 호환되는 구분 기호로 변환합니다. 예를 들어, Windows 셸의 경우 슬래시가 백슬래시로 변환됩니다.
이 함수는 Qt 5.0에서 도입되었습니다.
shell_path()도 참조하십시오.
system_quote(arg)
system() 함수가 명령을 호출하는 데 사용하는 셸에 맞게 arg 를 따옴표로 묶습니다.
이 함수는 Qt 5.0에서 도입되었습니다.
shell_quote()도 참조하십시오.
take_first(변수명)
variablename 의 첫 번째 값을 반환하고 소스 변수에서 해당 값을 제거합니다.
이는 예를 들어 큐를 구현할 때 편리함을 제공합니다.
이 함수는 Qt 5.8에서 도입되었습니다.
take_last(), first()도 참조하십시오.
take_last(변수명)
variablename 의 마지막 값을 반환하고 소스 변수에서 해당 값을 제거합니다.
이는 예를 들어 스택을 구현할 때 편리함을 제공합니다.
이 함수는 Qt 5.8에서 도입되었습니다.
take_first(), last()도 참조하십시오.
unique(변수명)
variablename 에 있는 값 중 중복된 항목을 제거한 목록을 반환합니다. 예:
ARGS = 1 2 3 2 5 1
ARGS = $$unique(ARGS) #1 2 3 5upper(arg1 [, arg2 ..., argn])
임의의 개수의 인수를 받아 대문자로 변환합니다.
lower()도 참조하십시오.
val_escape(변수명)
variablename 의 값을 qmake 코드로 파싱할 수 있도록 이스케이프 처리합니다.
이 함수는 Qt 5.0에서 도입되었습니다.
© 2026 The Qt Company Ltd. Documentation contributions included herein are the copyrights of their respective owners. The documentation provided herein is licensed under the terms of the GNU Free Documentation License version 1.3 as published by the Free Software Foundation. Qt and respective logos are trademarks of The Qt Company Ltd. in Finland and/or other countries worldwide. All other trademarks are property of their respective owners.