在 GCC 编译的项目中,
g++
gcc
使用 CMake,通常建议进行“外源”构建。CMakeLists.txt在项目的根目录中创建您的。然后从项目的根目录:
CMakeLists.txt
mkdir Release cd Release cmake -DCMAKE_BUILD_TYPE=Release .. make
对于Debug(再次从项目的根目录):
Debug
mkdir Debug cd Debug cmake -DCMAKE_BUILD_TYPE=Debug .. make
Release/Debug将为您的编译器添加适当的标志。还有RelWithDebInfo和MinSizeRel构建配置。
Release
RelWithDebInfo
MinSizeRel
您可以通过指定可以在其中添加变量的工具链文件来修改/添加标志,例如:CMAKE_<LANG>_FLAGS_<CONFIG>_INIT
CMAKE_<LANG>_FLAGS_<CONFIG>_INIT
set(CMAKE_CXX_FLAGS_DEBUG_INIT "-Wall") set(CMAKE_CXX_FLAGS_RELEASE_INIT "-Wall")
有关详细信息,请参阅CMAKE_BUILD_TYPE。
至于你的第三个问题,我不确定你到底在问什么。CMake 应该自动检测并使用适合您不同源文件的编译器。