【问题标题】:Translate from cc command line to CMakeLists.txt [duplicate]从 cc 命令行转换为 CMakeLists.txt [重复]
【发布时间】:2020-03-13 12:49:05
【问题描述】:

我想在我的项目中使用 cmake,但我必须以这种方式定义一个预处理器宏:

#if defined CONFIG_TEXTUI

void BoardView_init (void)
{
}

void BoardView_free (void)
{
}

void BoardView_displayAll (void)
{

}

void BoardView_displaySquare (Coordinate x, Coordinate y, PieceType kindOfPiece)
{
    BoardView_displayAll();
}

void BoardView_displayEndOfGame (GameResult result)
{
  // TODO: à compléter
}

void BoardView_displayPlayersTurn (PieceType thisPlayer)
{
  // TODO: à compléter
}

void BoardView_sayCannotPutPiece (void)
{
  // TODO: à compléter
}

#endif // defined CONFIG_TEXTUI

问题是文件用这个编译:gcc -std=c99 -DCONFIG_TEXTUI -DCONFIG_PLAYER_MANAGER_MOCK -o etape1 main.c board.c game.c board_view_text.c tictactoe_erros.c player_manager_mock.c

如何在 cmake (-DCONFIG_TEXTUI) 中指定这些选项?

这是我的实际 CMakeLists.txt :

cmake_minimum_required(VERSION 3.15)
project(morpion C)

set(CMAKE_C_STANDARD 99)

add_executable(morpion main.c game.c board.c player_manager_mock.c board_view_text.c tictactoe_erros.c test_checkEndOfGame.c)

set_property(GLOBAL PROPERTY DCONFIG_TEXTUI)
set_property(GLOBAL PROPERTY DCONFIG_PLAYER_MANAGER_MOCK)

【问题讨论】:

    标签: c gcc makefile cmake clion


    【解决方案1】:

    预处理器宏定义为add_compile_definitions():https://cmake.org/cmake/help/latest/command/add_compile_definitions.html#command:add_compile_definitions

    根据您的情况,您需要:

    add_compile_definitions(CONFIG_TEXTUI CONFIG_PLAYER_MANAGER_MOCK)
    

    【讨论】:

    • 谢谢,我不知道他们被称为我正在寻找这个词!
    • 在谷歌上搜索你无法命名的东西总是很困难,对吧? ;-)
    • 我知道你的意思#frenchteam
    猜你喜欢
    • 2021-06-06
    • 1970-01-01
    • 1970-01-01
    • 2018-11-03
    • 2016-12-31
    • 1970-01-01
    • 2017-10-19
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多