c - 从 CMake 检索宏

标签 c cmake macros

我有以下代码:

#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_PLATFORMLINUX_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/

相关文章:

c++ - 如何构建项目 Visual Studio 可以跨平台运行

c++ - CMake 无法找到 Boost 库(VS 2017)

c++ - 使用 VS_DEBUGGER_ENVIRONMENT 设置的 PATH 环境调试 CMake Visual Studio 项目

C预处理器: macro function to call printf()

c - 根据指定的头文件扩展C中的宏

c - 以数字作为变量的字符串,Unix C 问题

c - C 中的指针数据类型

c++ - C/C++ Linux下可登录telnet服务器的telnet库

c++ - CMake:target_include_directories() 找不到头文件

c++ - 如何处理遗留代码中的方法名称重复