项目简介:
项目文件夹为:<tutorial>(E:\TEMP\tutorial)
库名为:MyFunctions,内有自定义的计算平方函数
项目功能:主函数调用MyFunctions库内的平方函数
----------------------------------
----------------------------------
第一步:准备好自己的库,库名为:“MyFunctions”
1.在项目文件夹内新建库文件夹<MyFunctions>(E:\TEMP\tutorial\MyFunctions)
2.在库文件夹<MyFunctions>内,创建如下3个文件:
(1)CMakeLists.txt 代码如下:
add_library(MyFunctions mysquare.cxx)
(2)Functions.h 代码如下:
double mysquare(const double a);
(3)mypower.cxx 代码如下:
double mysquare(const double a){
return a*a;
}
----------------------------------
第二步:搭建一个简单的项目,该项目调用第一步中的库
1. 顶层项目文件夹<tutorial>(E:\TEMP\tutorial)内建立如下2个文件:
(1)CMakeLists.txt 代码如下:
cmake_minimum_required(VERSION 3.10)
project(Tutorial)
# add the MathFunctions library
add_subdirectory(MyFunctions)
# add the executable
add_executable(Tutorial tutorial.cxx)
target_link_libraries(Tutorial PUBLIC MyFunctions)
# add the binary tree to the search path for include files
# so that we will find TutorialConfig.h
target_include_directories(Tutorial PUBLIC
"${PROJECT_BINARY_DIR}"
"${PROJECT_SOURCE_DIR}/MyFunctions"
)
(2)tutorial.cxx 代码如下:
#include "Functions.h"
#include <iostream> // std::cout
#include <string> // std::stod
int main(int argc, char** argv) {
const double inputValue_a = std::stod(argv[1]);
const double inputValue_b = std::stod(argv[2]);
double p = mypower(inputValue_a);
std::cout << "inputValue1 = " << inputValue_a << std::endl;
std::cout << "inputValue2 = " << inputValue_b << std::endl;
std::cout << inputValue_a << " square = " << p << std::endl;
return 0;
}
----------------------------------
第三步:用 CMake-gui 配置并生成项目
1. 配置项目
结束后,项目文件夹内多了<build>文件夹:
<build>文件夹内容:
2. 生成项目,并在vs2019中打开:
“Generate” 后,<build>文件夹内容如下:
“Open Project”后,visual studio 2019 运行并加载tutorial项目
----------------------------------
第四步:在visual studio 2019 内build项目
Build成功后,<build>文件夹内容如下:
<Debug>文件夹内容:
----------------------------------
第五步:测试项目可执行程序
1. 打开cmd.exe,进入可执行程序所在文件夹
2. 输入:Tutorial.exe 3 5
3. 得到输出:
inputValue1 = 2
inputValue2 = 5
2 square = 4
测试结果如图: