12.6.4 Defines
12.6.4 Defines
hxcpp 빌드를 제어하는 데 사용할 수 있는 여러 표준 defines가 있습니다. 이 중 일부는 Haxe 컴파일러가 사용하며 생성된 코드에 영향을 줍니다. 다른 것들은 빌드 도구에 적용되어 코드가 컴파일되는 방식에 영향을 줍니다.
코드 생성(Code generation)
코드가 생성되는 방식에 영향을 주는 defines. 이들은 haxe를 호출할 때 커맨드 라인에 있어야 합니다.
| Define | 의미 |
|---|---|
HXCPP_DEBUGGER |
디버거가 요구하는 추가 매크로 추가. 보통 디버거 haxelib이 자동으로 추가함. |
HXCPP_GC_GENERATIONAL |
실험적인 세대별 가비지 컬렉터를 활성화. |
annotate_source |
생성된 소스 코드에 추가 주석 추가 - hxcpp 개발에 유용. |
dll_export |
hxcpp 런타임 심볼을 내보냄. |
file_extension |
생성된 파일의 확장자(점 없이)를 설정. 예: Objective-C++ 코드의 경우 -D file_extension=mm. |
force_native_property |
필드에 대한 동적 접근이 적절할 때 프로퍼티 getter/setter를 호출하게 함. |
include_prefix |
모든 생성된 include 파일을 하위 디렉토리에 배치. 예: -D include_prefix=hxinc. 이름 충돌을 피하는 데 유용. |
no-compilation |
코드를 생성하지만 컴파일하지 않음. |
no-debug |
코드에 디버그 매크로를 생성하지 않음. |
nocppiaast |
새 최근 변경 대신 레거시 cppia 생성을 사용. |
objc |
Objective-C++ 클래스 생성. |
scriptable |
스크립팅에 필요한 추가 런타임 정보 활성화. |
컴파일(Compilation)
코드가 컴파일되는 방식에 영향을 주는 defines. 이들은 haxe를 호출할 때 커맨드 라인에 있거나 hxcpp 빌드 환경을 통해 추가될 수 있습니다.
| Define | 의미 |
|---|---|
HXCPP_GC_MOVING |
가비지 컬렉터가 단편화를 줄이기 위해 메모리를 이동하게 허용. |
HXCPP_GC_SUMMARY |
프로그램이 종료될 때 작은 프로파일링 요약을 출력. |
HXCPP_GC_DYNAMIC_SIZE |
GC 시간을 모니터링하고 필요하면 메모리 작업 공간을 확장. |
HXCPP_GC_BIG_BLOCKS |
1기가바이트보다 큰 작업 메모리 허용. |
HXCPP_GC_DEBUG_LEVEL |
GC의 추가 디버깅을 나타내는 레벨(1-4) 지정. |
HXCPP_DEBUG_LINK |
릴리스 모드에서도 최종 바이너리에 심볼 추가. |
HXCPP_STACK_TRACE |
릴리스 모드에서도 유효한 함수 수준 스택 추적. |
HXCPP_STACK_LINE |
릴리스 모드에서도 스택 추적에 줄 정보 포함. |
HXCPP_CHECK_POINTER |
릴리스 모드에서도 null 포인터 검사 추가. |
HXCPP_PROFILER |
프로파일러 지원 추가. |
HXCPP_TELEMETRY |
텔레메트리 지원 추가. |
HXCPP_CPP11 |
C++11 기능과 링크 라이브러리 사용. |
exe_link |
실행 파일 생성(Android에서 동적 라이브러리 대신). |
static_link |
정적 라이브러리 생성. |
dll_link |
동적 라이브러리 생성. |
기타(Other)
| Define | 의미 |
|---|---|
HXCPP_VERBOSE |
빌드 도구에서 추가 출력을 출력. |
HXCPP_TIMES |
기본 프로파일링 정보 표시. |
HXCPP_NEKO_BUILDTOOL |
컴파일된 BuildTool.exe 대신 hxcpp.n 사용을 강제. |
HXCPP_NO_COLOR |
빌드 도구 출력에 색상 코드를 추가하지 않음. |
HXCPP_KEEP_TEMP |
파일 embedName 옵션을 위해 만든 파일을 삭제하지 않음. |
타깃 아키텍처(Target architecture)
| Define | 의미 |
|---|---|
HXCPP_M32 |
현재 데스크톱에 대해 32비트 컴파일 강제. |
HXCPP_M64 |
현재 데스크톱에 대해 64비트 컴파일 강제. |
HXCPP_ARMV6 |
armv6용 ARM 기반 장치 컴파일. |
HXCPP_ARM64 |
64비트용 ARM 기반 장치 컴파일. |
HXCPP_ARMV7 |
armv7용 ARM 기반 장치 컴파일. |
HXCPP_ARMV7S |
armv7s용 ARM 기반 장치 컴파일. |
HXCPP_LINUX_ARMV7 |
Linux ARMv7 장치용 컴파일. |
HXCPP_LINUX_ARM64 |
Linux ARM64 장치용 컴파일. |
winrt |
windowsRt/windows UWP용 컴파일. |
android |
Android용 컴파일. |
PLATFORM |
NDK 컴파일을 위한 Android 플랫폼 지정. |
ANDROID_NDK_ROOT |
Android NDK toolchain의 위치 지정. |
ANDROID_NDK_DIR |
Android NDK toolchain을 찾기 위한 검색 위치 지정. |
HXCPP_X86 |
x86 아키텍처용 android 컴파일. |
iphoneos |
iPhone iOS용 컴파일. |
iphonesim |
iPhone 시뮬레이터용 컴파일. |
appletvos |
Apple tvOS용 컴파일. |
appletvsim |
Apple tvOS 시뮬레이터용 컴파일. |
watchos |
Apple watchOS용 컴파일. |
watchsimulator |
Apple watchOS 시뮬레이터용 컴파일. |
webos |
webOS용 컴파일. |
tizen |
Tizen용 컴파일. |
blackberry |
Blackberry용 컴파일. |
emscripten |
Emscripten용 컴파일. |
cygwin |
Cygwin을 사용해 Windows용 컴파일. |
linux |
(크로스) Linux용 컴파일. |
rpi |
(크로스) Raspberry Pi용 컴파일. |
mingw |
MinGW를 사용해 Windows용 컴파일. |
HXCPP_MINGW |
MinGW를 사용해 Windows용 컴파일. |
NO_AUTO_MSVC |
MSVC 위치를 감지하지 말고 실행 파일 경로에 이미 있는 것을 사용. |
출처: Defines