【发布时间】:2011-01-13 17:28:07
【问题描述】:
我刚刚开始在一些个人和学校项目中使用 CMake,但遇到了一个小问题。
假设我试图让一个 C++ 程序在多个编译器(在本例中为 g++、cl 和 bcc32)下编译。我对每个编译器都有不同的命令行开关,我试图做的是基本上创建一个 gnu/ms/borland 目录并在其中创建 CMake 内容(通过输入目录并执行 cmake -DCMAKE_CXX_COMPILER=g++
.. 在 gnu 目录中,例如)。
在顶级目录的 CMakeLists.txt 中,我尝试按照以下方式进行操作:
if(CMAKE_CXX_COMPILER STREQUAL g++)
set(CMAKE_CXX_FLAGS "-Wextra -Wall -ansi -pedantic")
对其他编译器使用 elsifs 等等,但这似乎无法正常工作——它完全放弃了 CXXFLAGS。如果我使文件完全无条件(即假设 g++ 并使用 g++ 标志),则该行有效。
我在这里做错了什么,或者有更好的方法来处理这类问题?
【问题讨论】: