option(MYDEBUG "enable debug compilation" OFF) set (EXECUTABLE_OUTPUT_PATH ${PROJECT_SOURCE_DIR}/bin) add_subdirectory(src) 这里使用了option命令,其第一个参数是这个option的名字,第二个参数是字符串,用来描述这个option是来干嘛的,第三个是option的值,ON或OFF,也可以不写,不写就是默认OFF。 然后编写sr...
# CMake 最低版本号要求cmake_minimum_required(VERSION2.8)# 项目信息project(Demo4)# 是否使用自己的 MathFunctions 库option(USE_MYMATH"Use provided math implementation"ON)# 加入一个配置头文件,用于处理 CMake 对源码的设置configure_file("${PROJECT_SOURCE_DIR}/config.h.in""${PROJECT_BINARY_DIR}/c...
导入 "MathFunctions.h" #include "MathFunctions.h" #else // 如果 USE_MYMATH 未定义,导入 <cmath> #include <cmath> #endif using namespace std; int main(int argc, char const *argv[]) { #ifdef USE_MYMATH printf("Here define USE_MYMATH \n"); printf("%s power(2,3)=%d \n", "...
configure_file命令用于加入一个配置头文件 config.h ,这个文件由 CMake 从 config.h.in 生成,通过这样的机制,将可以通过预定义一些参数和变量来控制代码的生成。 option命令添加了一个USE_MYMATH选项,并且默认值为ON。 USE_MYMATH变量的值决定是否使用我们自己编写的 MathFunctions 库。 修改main.cc 文件 之后修...
#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加进来: ...
#cmakedefine HAVE_LOG #cmakedefine HAVE_EXP 修改mysqrt.cxx以包括cmath。接下来,在mysqrt函数的同一文件中,我们可以使用以下代码提供基于log和exp(如果在系统上可用)的替代实现(在return result;前不要忘记#endif!): #if 已定义(HAVE_LOG) && 已定义(HAVE_EXP) double 结果 = exp(log(x) * 0.5); ...
#define _TEST_FUNC_H_ void func(int data); #endif 修改main.c,调用testFunc.h里声明的函数func(): main.c #include #include "testFunc.h" int main(void) { func(100); return 0; } 修改CMakeLists.txt,在add_executable的参数里把testFunc.c加进来: ...
*/#ifndef_TEST_FUNC_H_#define_TEST_FUNC_H_voidfunc(intdata);#endif 修改main.c,调用testFunc.h里声明的函数func(), #include<stdio.h>#include"testFunc.h"intmain(void){func(100);return0; } 修改CMakeLists.txt,在add_executable的参数里把testFunc.c加进来 ...
// the configured options and settings for Tutorial#define Tutorial_VERSION_MAJOR @Tutorial_VERSION_MAJOR@ #define Tutorial_VERSION_MINOR @Tutorial_VERSION_MINOR@ 这样,当CMake配置头文件时,@Tutorial_VERSION_MAJOR@与@Tutorial_VERSION_MINOR@将会被CMakeLists.txt文件中的值代替。
可以在cmake中通过option函数以及add_definitions函数来实现。 感兴趣也可以看 stack overflow:How to read a CMake Variable in C++ source code cmake 传递版本号给源文件 首先定义demo11Config.h.in头文件接受CMakeLists.txt传递来的版本号参数,文件内容如下: 代码语言:javascript 代码运行次数:0 运行 AI代码解...