0

这是我的 CMakeLists.txt 文件

cmake_minimum_required (VERSION 3.10)
project (hello DESCRIPTION "HELLO WORLD" VERSION 20.05.05)

option (TARGET_ONE "Build for Target One" OFF)

set (CMAKE_CXX_STANDARD 14)
set (CMAKE_CXX_STANDARD_REQUIRED ON)
set (CMAKE_POSITION_INDEPENDENT_CODE ON)

if (TARGET_ONE)
    add_definitions (-DTARGETONE)
endif()

add_subdirectory (source)

编辑:这是我正在使用的命令:

cd ~/build
CMAKE_FLAGS="CXX -DTARGET_ONE=ON -DCMAKE_BUILD_TYPE=Release" cmake .
~/build cmake --build .

在此处输入图像描述

4

1 回答 1

-1

您似乎在为错误的目录调用 CMake。

<project_dir>给定一个包含您的项目目录CMakeLists.txt和一个子目录source,您可以按如下方式调用 CMake:

cmake -S <project_dir> -B <build_dir> -DCMAKE_BUILD_TYPE=Release -DTARGET_ONE=ON
cmake --build <build_dir> --target all --config Release

<build_dir>如果目录不存在,CMake 将创建该目录。

如果命令中未使用任何参数,则默认激活语言CXX和。CLANGUAGESproject

如果您的 CMake 版本低于 3.13,则它不理解该-S选项并且对该选项有不同的用法-B。但它有未记录的选项-H-B. 然后调用看起来像这样(-H-B选项后面没有空格!):

cmake -H<project_dir> -B<build_dir> -DCMAKE_BUILD_TYPE=Release -DTARGET_ONE=ON
于 2021-11-11T12:54:24.507 回答