개발하거나 유지보수할때 보면..
WIN32 관련 매크로가 정말 많다.
보통 _WIN32는 32bit 윈도우, _WIN64 는 64bit 윈도우라 생각할수 있는데...
그것이 아니었다
https://stackoverflow.com/questions/6679396/should-i-define-both-win32-and-win64-in-64bit-build
위 글처럼 _WIN32는 윈도우 바이너리 그 중에서 _WIN64는 64bit 윈도우 바이너리를 나타낸다.
아래 표를 참고해서 아키텍처와 관련된 바이너리를 잘 기억해두자.
그러면서...
CMake로 프로젝트를 제너레이터 하는데...
WIIN32 라는 매크로가 모든 응용 프로그램 프로젝트에 전처리기로 정의되어 있는게 있었다...
암만 봐도.. 뭔가 좀 이해할 수 없다..
CMakeLists.txt에서 WIN32 라는 키워드가 있는데..
이것을 사용하면 무조건 전처리기 정의에 WIN32가 정의된다.
이를 원치않는다면.. compile_option을 통해 따로 설정하도록 해야한다.
https://stackoverflow.com/questions/9742003/platform-detection-in-cmake
'C , C++, C#' 카테고리의 다른 글
[CMake] VS 2022 CMakePresets error using toolset (1) | 2023.06.05 |
---|---|
[기본] char* / char [] in C (0) | 2023.01.05 |
[Visual Studio] 릴리즈 바이너리 디버깅하기 (0) | 2022.12.07 |
[Visual Studio 2022] VS 2022 크로스 플랫폼 빌드: CMakepprest.json (0) | 2022.11.07 |
[Visual Studio] LNK2019: unresolved external symbol (0) | 2022.09.08 |