如何在 cmake 中设置编译器特定标志
How to set compiler specific flags in cmake
我有一段代码需要 运行 使用 MSVC 和 g++。因此我使用 Cmake。我想使用属于 C++20 的 designated initializers。因为它们自 C99 以来就存在,所以它们已经存在于 g++ 中,但在 MSVC++ 中,它们仅在标志 /std:latest
.
中可用
在 CMake 文件中为 MSVC 启用此选项的最佳方法是什么?
您可以设置变量 CMAKE_CXX_FLAGS_RELEASE
(仅适用于发布版本)、CMAKE_CXX_FLAGS_DEBUG
(仅适用于调试版本)和 CMAKE_CXX_FLAGS
(同时适用于发布和调试)。
如果您还使用其他编译器,您应该只设置 msvc 的选项:
if(MSVC)
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} /std:latest")
endif()
我有一段代码需要 运行 使用 MSVC 和 g++。因此我使用 Cmake。我想使用属于 C++20 的 designated initializers。因为它们自 C99 以来就存在,所以它们已经存在于 g++ 中,但在 MSVC++ 中,它们仅在标志 /std:latest
.
在 CMake 文件中为 MSVC 启用此选项的最佳方法是什么?
您可以设置变量 CMAKE_CXX_FLAGS_RELEASE
(仅适用于发布版本)、CMAKE_CXX_FLAGS_DEBUG
(仅适用于调试版本)和 CMAKE_CXX_FLAGS
(同时适用于发布和调试)。
如果您还使用其他编译器,您应该只设置 msvc 的选项:
if(MSVC)
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} /std:latest")
endif()