cmake .. -D USE_ABC:BOOL=OFF PS D:\work\modern_cmake_work\ModernCMake\codes\cmake\cmakedefine\01\build> cmake .. -D USE_ABC:BOOL=OFF -- Selecting Windows SDK version 10.0.19041.0 to target Windows 10.0.22000. -- Configuring done -- Generating done -- Build files have been writt...
get property语法中的sit和define参数是用于设置和获取属性的,通过设置属性值来重定义属性。第一个自变量是属性类型,对应的属性是p一,存储的变量放在第一位。
#cmakedefine USE_MYMATH 这样在cmake配置工程的时候,会将这个宏写在头文件里(如果开启的话),这样构建文件和源码都可以使用这个宏。 在构建cmake时,可以配置是否开启此宏(不加选项按照上次状态),会在头文件里生成对应的define语句 cmake 路径 -DUSE_MYMATH=ONcmake 路径 -DUSE_MYMATH=OFF 输出信息 message...
但我们并不直接编写这个文件,为了方便从 CMakeLists.txt 中导入配置,我们编写一个config.h.in文件,内容如下: #cmakedefine USE_MYMATH 这样CMake 会自动根据 CMakeLists 配置文件中的设置自动生成 config.h 文件。 编译项目 现在编译一下这个项目,为了便于交互式的选择该变量的值,可以使用ccmake命令(也可以使用...
#defineVERSION"@PROJECT_VERSION@" 在源文件中包含配置文件: #include"config.h" 4、生成自定义构建步骤 4.1 自定义命令 CMake 允许你添加自定义构建命令,以便在构建过程中执行额外的操作。 添加自定义命令: add_custom_command(OUTPUT ${CMAKE_BINARY_DIR}/generated_file.txt ...
#cmakedefine USE_FEATURE_X 根据USE_FEATURE_X 的设置,#cmakedefine 会在生成的 config.h 文件中相应地定义或不定义该宏。 4.2. 利用 #cmakedefine01 精确处理布尔值变量 处理布尔值时,我们需要一个明确和精确的方法,而 #cmakedefine01 正是为此而生。 布尔逻辑与人的决策过程 布尔逻辑是我们在编程中常用...
#cmakedefineUSE_MYMATH 这样CMake 会自动根据 CMakeLists 配置文件中的设置自动生成 config.h 文件。 编译项目 现在编译一下这个项目,为了便于交互式的选择该变量的值,可以使用ccmake .命令 从中可以找到刚刚定义的USE_MYMATH选项,按键盘的方向键可以在不同的选项窗口间跳转,按下enter键可以修改该选项。修改完成...
#defineMYLIB_API__declspec(dllexport) 这样的话,两个函数my_add和my_sub的符号才可能被导出到 mylib.lib 文件中。 当这个动态库被应用程序(myapp)使用的时候,myapp.c在 includemylib.h的时,关闭宏MYLIB_EXPORT,此时下面这个宏就生效: 代码语言:javascript ...
#define _TEST_FUNC_H_ void func(int data); #endif 修改main.c,调用testFunc.h里声明的函数func(): main.c #include <stdio.h> #include "testFunc.h" int main(void) { func(100); return 0; } 修改CMakeLists.txt,在add_executable的参数里把testFunc.c加进来: ...
区别在于define都会定义。只有当CMakeLists.txt中的同名变量为真时才会在生成的头文件中定义,区别于define无论何时都会定义。