Visual C++ 리눅스 프로젝트 - error : ‘u8’ was not declared in this scope
소스코드에 사용한 u8 접두사가,
// error : pasting "u8" and "'='" does not give a valid preprocessing token
#define _T(str) u8##str
// error : 'u8' was not declared in this scope
uint8_t ch = u8'x';
각각 저런 식으로 컴파일 오류가 발생합니다. 검색해 보면, cstdint, stdint.h, linux/types.h 등의 헤더를 포함하면 된다는데,
#include <cstdint>
#include <stdint.h>
#include <linux/types.h>
저렇게 3개 다 포함해도 오류는 여전합니다. 가만 보니까, 표준의 문제군요. ^^
현재 Visual Studio 2022는 리눅스 프로젝트를 생성하면 C++ 11 표준을 기본으로 합니다. 위와 같이 17로 맞춰 주시면 헤더 파일이 없어도 정상적으로 u8 접두사를 사용할 수 있습니다.
[이 글에 대해서 여러분들과 의견을 공유하고 싶습니다. 틀리거나 미흡한 부분 또는 의문 사항이 있으시면 언제든 댓글 남겨주십시오.]