这种可以在我们更改别人代码做实验时使用,既不对其源码进行破坏,又可以添加自己的功能。之前都是在程序中进行#define,有了这个后可以直接在编译的时候进行选择。具体的,在工程CMakeLists.txt 中,使用add_definitions()函数控制代码的开启和关闭: option(TEST_DEBUG "option for debug" OFF) i
#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...
set(VERSION 1.0.0) configure_file(version.h.in "${PROJECT_SOURCE_DIR}/version.h") 假设version.h.in(感谢 @Narukara 帮忙指正)的内容为: #define VERSION "@VERSION@" 那么生成的version.h的内容为: #define VERSION "1.0.0" 6 执行系统命令 使用execute_process命令可以执行一条或者顺序执行多条系统...
#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加进来: CMakeLists.txt cmake_minimum...
# 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...
#cmakedefine VAR .. 1. 经过configure后生成的文件内容被替换为: #define VAR ... //替换成功 /* #undef VAR */ //未定义的变量 1. 2. 生成的文件将会保留在'#'与'cmakedefine'之间的空格和制表符。 lion有一个问题,就是直接用cmakedefine定义宏的时候假如#与cmakedefine之间有空格则不会替换cmake...
WORKING_DIRECTORY ${CMAKE_SOURCE_DIR} OUTPUT_VARIABLE GIT_REPO_HASH OUTPUT_STRIP_TRAILING_WHITESPACE )# 写入头文件宏定义的版本字符串,日期和 Hashfile(WRITE ${PROJECT_BINARY_DIR}/repo_version.h"#define REPO_VERSION \"${GIT_REPO_VERSION}\"\n#define REPO_DATE \"${GIT_REPO_DATE}\"\n#defin...
Cmake 是一个跨平台、开源的构建系统。它是一个集软件构建、测试、打包于一身的软件。它使用与平台和编译器独立的配置文件来对软件编译过程进行控制。
# 当于g++选项中的-I参数的作用,也相当于环境变量中增加路径到CPLUS_INCLUDE_PATH变量的作用,也就是编译包含的目录include_directories(${PROJECT_SOURCE_DIR}/include)# 添加需要链接的库文件路径,注意这里是全路径LINK_LIBRARIES("/usr/local/cuda/lib64/libcublas.so.9.0")# Adds-Ddefine flags to the compil...