바꾸기 함수
qmake는 설정 프로세스 중에 변수의 내용을 처리하는 함수를 제공합니다. 이러한 함수를 대체 함수라고 부릅니다. 일반적으로 다른 변수에 할당할 수 있는 값을 반환한다. 함수 앞에 $$
연산자를 붙이면 이러한 값을 얻을 수 있다. 대체 함수는 기본 제공 함수와 함수 라이브러리로 나눌 수 있습니다.
함수 테스트도 참조하세요.
기본 제공 바꾸기 함수
기본 대체 함수는 내장 함수로 구현됩니다.
절대_경로(경로[, 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) #passwd
cat(filename[, mode])
filename
의 내용을 반환합니다. mode
에 대해 다음 옵션을 지정할 수 있습니다:
blob
파일의 전체 내용을 하나의 값으로 반환합니다.lines
각 줄을 별도의 값으로 반환합니다(줄 끝 없이).true
(기본값) 및false
는 파일 내용을 별도의 값으로 반환하며, qmake 값 목록 분할 규칙에 따라 분할합니다(변수 할당에서와 같이).mode
이false
인 경우 줄 바꿈 문자만 포함된 값이 목록에 삽입되어 파일에서 줄 바꿈이 있는 위치를 나타냅니다.
clean_path(경로)
디렉터리 구분 기호가 정규화("/"로 변환)되고 중복된 구분 기호가 제거되고 "."와 "."가 해결된(가능한 한) path
을 반환합니다. 이 함수는 QDir::cleanPath 를 감싸는 래퍼입니다.
이 함수는 Qt 5.0에 도입되었습니다.
절대 경로(), 상대 경로(), 셸 경로(), 시스템 경로()도 참조하십시오.
dirname(파일)
지정된 파일의 디렉토리 이름 부분을 반환합니다. 예를 들어
FILE = /etc/X11R6/XF86Config DIRNAME = $$dirname(FILE) #/etc/X11R6
enumerate_vars
정의된 모든 변수 이름의 목록을 반환합니다.
이 함수는 Qt 5.0에 도입되었습니다.
escape_expand(arg1 [, arg2 ..., argn])
임의의 수의 인자를 받습니다. 각 인자에 대해 이스케이프 시퀀스 \n
, \r
, \t
를 확장하고 인자를 목록으로 반환합니다.
참고: 문자열을 문자 그대로 확장하도록 지정하는 경우 다음 코드 스니펫에서와 같이 백슬래시를 이스케이프 처리해야 합니다:
message("First line$$escape_expand(\\n)Second line")
find(variablename, 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
가 참이면 이 함수는 하위 디렉터리로 내려갑니다.
first(variablename)
variablename
의 첫 번째 값을 반환합니다.
예를 들어, 다음 호출은 firstname
을 반환합니다:
CONTACT = firstname middlename surname phone message($$first(CONTACT))
take_first(), last()도 참조하세요.
format_number(number[, options...])
options
에 지정된 형식으로 number
를 반환합니다. 다음 옵션을 지정할 수 있습니다:
ibase=n
입력의 기저를n
obase=n
출력의 밑줄을n
width=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
을 qmake 프로젝트 파일로 평가하고 variablename
에 할당된 값을 반환합니다.
infile()도 참조하십시오.
getenv(variablename)
환경 변수 variablename
의 값을 반환합니다. 이 함수는 대부분 $$(variablename)
구문과 동일합니다. 그러나 getenv
함수는 이름에 괄호가 붙은 환경 변수를 지원합니다.
이 함수는 Qt 5.12에 도입되었습니다.
join(variablename, glue, before, after)
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]])
start
과 end
(포함) 사이의 0 기반 요소 인덱스가 있는 variablename
목록 값의 조각을 반환합니다.
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
이 참이면 (기본값), 질문은 프롬프트로 식별하는 일반 접두사와 접미사를 가져옵니다.
quote(문자열)
string
전체를 단일 엔티티로 변환하고 결과를 반환합니다. 이것은 문자열을 큰따옴표로 묶는 멋진 방법일 뿐입니다.
re_escape(문자열)
모든 특수 정규식 문자를 백슬래시로 이스케이프 처리한 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
가 상대 경로인 경우, 먼저 기본 디렉터리를 기준으로 확인되며, 이 경우 이 함수는 $$clean_path()와 같은 역할을 합니다.
이 함수는 Qt 5.0에 도입되었습니다.
절대_경로(), clean_경로()도 참조하십시오.
replace(문자열, 이전_ 문자열, 새_ 문자열)
string
로 제공된 변수의 내용에서 old_string
의 각 인스턴스를 new_string
로 바꿉니다. 예를 들어, 코드
MESSAGE = This is a tent. message($$replace(MESSAGE, tent, test))
는 메시지를 출력합니다:
This is a test.
resolve_depends(variablename, 접두사)
이 함수는 일반적으로 필요하지 않은 내부 함수입니다.
이 함수는 Qt 5.0에 도입되었습니다.
reverse(variablename)
variablename
의 값을 역순으로 반환합니다.
이 함수는 Qt 5.0에 도입되었습니다.
section(variablename, 구분자, 시작, 끝)
variablename
값의 섹션을 반환합니다. 이 함수는 QString::section 을 감싸는 래퍼입니다.
예를 들어, 다음 호출은 surname
를 출력합니다:
CONTACT = firstname:middlename:surname:phone message($$section(CONTACT, :, 2, 2))
shadowed(경로)
프로젝트 소스 디렉터리에서 빌드 디렉터리로 경로를 매핑합니다. 이 함수는 소스 내 빌드의 경우 path
을 반환합니다. path
이 소스 트리 외부를 가리키면 빈 문자열을 반환합니다.
이 함수는 Qt 5.0에 도입되었습니다.
shell_path(경로)
path
내의 모든 디렉토리 구분자를 프로젝트를 빌드하는 동안 사용된 셸(즉, make 도구에서 호출되는 셸)과 호환되는 구분자로 변환합니다. 예를 들어 Windows 셸을 사용하는 경우 슬래시는 백슬래시로 변환됩니다.
이 함수는 Qt 5.0에 도입되었습니다.
system_path()도 참조하십시오.
shell_quote(arg)
프로젝트를 빌드하는 동안 사용된 셸을 arg
인용합니다.
이 함수는 Qt 5.0에 도입되었습니다.
system_quote()도 참조하십시오.
size(변수명)
variablename
의 값 수를 반환합니다.
str_size()도 참조하십시오.
sort_depends(variablename, 접두사)
이 함수는 일반적으로 필요하지 않은 내부 함수입니다.
이 함수는 Qt 5.0에 도입되었습니다.
sorted(variablename)
variablename
의 값 목록을 오름차순 ASCII 순서로 정렬된 항목으로 반환합니다.
숫자 정렬은 format_number() 함수를 사용하여 값을 고정 길이로 제로 패딩하여 수행할 수 있습니다.
이 함수는 Qt 5.8에 도입되었습니다.
split(변수명, 구분자)
variablename
값을 별도의 값으로 분할하여 목록으로 반환합니다. 이 함수는 QString::split 를 감싸는 래퍼입니다.
예를 들어
CONTACT = firstname:middlename:surname:phone message($$split(CONTACT, :))
sprintf(문자열, 인수...)
string
의 %1-%9 를 arguments
함수의 쉼표로 구분된 목록에 전달된 인수로 바꾸고 처리된 문자열을 반환합니다.
str_member(arg [, start [, end]])
이 함수는 멤버()와 동일하지만 목록 변수 대신 문자열 값에 대해 작동하므로 인덱스가 문자 위치를 참조한다는 점을 제외하면 동일합니다.
이 함수는 많은 일반적인 문자열 조각화 작업을 구현하는 데 사용할 수 있습니다:
# $$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 )
mode 인수는 $$cat()과 마찬가지로 blob
, lines
, true
, false
를 값으로 받습니다. 그러나 기존 단어 분할 규칙(예: 빈 또는 true
, false
)은 미묘하게 다릅니다.
stsvar
을 전달하면 명령의 종료 상태가 해당 변수에 저장됩니다. 명령이 충돌하면 상태는 -1이 되고, 그렇지 않으면 명령이 선택한 음수가 아닌 종료 코드가 됩니다. 일반적으로 상태를 0(성공)과 비교하는 것으로 충분합니다.
system()의 테스트 변형도 참조하세요.
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)
중복 항목을 제거한 variablename
의 값 목록을 반환합니다. 예를 들면 다음과 같습니다:
ARGS = 1 2 3 2 5 1 ARGS = $$unique(ARGS) #1 2 3 5
upper(arg1 [, arg2 ..., argn])
임의의 수의 인수를 받아 대문자로 변환합니다.
lower()도 참조하십시오.
VAL_EScape(변수명)
variablename
의 값을 qmake 코드로 구문 분석할 수 있는 방식으로 이스케이프합니다.
이 함수는 Qt 5.0에 도입되었습니다.
© 2025 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.