我有以下代码:
#if defined(__WIN32) || defined(__WIN64)
// Windows compiler compiles this code
# define WINDOWS_PLATFORM
#elif defined(__linux__)
// GCC compiles
# define LINUX_PLATFORM
#else
# error "unsupported platform"
#endif
CMake 是否能够检查宏 WINDOWS_PLATFORM 或 LINUX_PLATFORM 并将源文件路径相应地设置为 win/ 或 posix/ ?
最佳答案
CMake 有自己的变量来检查您是否在特定平台上。例如,使用以下代码,您可以检查您是否在最流行的平台之一上,并相应地调整您需要的任何内容:
if(WIN32)
...
elseif(APPLE)
...
elseif(UNIX AND NOT APPLE AND NOT CYGWIN)
...
endif()
因此您在那里不需要任何自定义宏 - CMake 内置了这样一个功能。
关于c - 从 CMake 检索宏,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35280236/