这种可以在我们更改别人代码做实验时使用,既不对其源码进行破坏,又可以添加自己的功能。之前都是在程序中进行#define,有了这个后可以直接在编译的时候进行选择。具体的,在工程CMakeLists.txt 中,使用add_definitions()函数控制代码的开启和关闭: option(TEST_DEBUG "option for debug" OFF) if (TEST_DEBUG) # 这...
/* ** testFunc.h */ #ifndef _TEST_FUNC_H_ #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的参数里...
#define _TEST_FUNC_H_ void func(int data); #endif 修改main.c,调用testFunc.h里声明的函数func() #include <stdio.h> #include "testFunc.h" int main(void) { func(100); return 0; } 修改CMakeLists.txt,在add_executable的参数里把testFunc.c加进来 cmake_minimum_required (VERSION 2.8) pro...
// mylib/mylib.h w文件#ifndef _MY_LIB_ #define _MY_LIB_ #ifdefMY_LINUX#defineMYLIB_APIextern #else#ifdefMYLIB_EXPORT#defineMYLIB_API__declspec(dllexport)#else#defineMYLIB_API__declspec(dllimport)#endif #endifMYLIB_APIintmy_add(int num1,int num2);MYLIB_APIintmy_sub(int num1,int...
#cmakedefine VAR .. 1. 经过configure后生成的文件内容被替换为: #define VAR ... //替换成功 /* #undef VAR */ //未定义的变量 1. 2. 生成的文件将会保留在'#'与'cmakedefine'之间的空格和制表符。 lion有一个问题,就是直接用cmakedefine定义宏的时候假如#与cmakedefine之间有空格则不会替换cmake...
# cmake needs this linecmake_minimum_required(VERSION3.1)# Define project nameproject(opencv_example_project)# Find OpenCV, you may need to set OpenCV_DIR variable# to the absolute path to the directory containing OpenCVConfig.cmake file# via the command line or GUIfind_package(OpenCV REQUIRED...
#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加进来: ...
cmake_minimum_required(VERSION3.10) # 设置项目名Tutorial project(Tutorial) # 增加可执行文件Tutorial,由如下文件关联:main.c add_executable(Tutorial main.c) 注:CMakeLists.txt中的关键字大小写均可,这里默认使用小写。 有两种构建方式(二选一,推荐第二种): ...
Cmake 是一个跨平台、开源的构建系统。它是一个集软件构建、测试、打包于一身的软件。它使用与平台和编译器独立的配置文件来对软件编译过程进行控制。