IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 开发工具 -> 【CMAKE】【Tutorial】04 增加库 -> 正文阅读

[开发工具]【CMAKE】【Tutorial】04 增加库

【CMAKE】【Tutorial】03 指定C++标准的程序基础上进行修改。

1. 添加文件夹与文件

CMake_Tutorial文件夹中添加子目录MathFunctions,并在该目录中添加以下三个文件:

  • CMakeLists.txt
  • MathFunctions.h
  • mysqrt.cpp
    文件内容分别如下:

1.1 CMakeLists.txt

add_library(MathFunctions mysqrt.cpp)

1.2 MathFunctions.h

double mysqrt(double x);

1.3 mysqrt.cpp

#include <iostream>
#include "MathFunctions.h"

// a hack square root calculation using simple operations
double mysqrt(double x)
{
  if (x <= 0)
  {
    return 0;
  }

  double result = x;

  // do ten iterations
  for (int i = 0; i < 10; ++i)
  {
    if (result <= 0)
    {
      result = 0.1;
    }
    double delta = x - (result * result);
    result = result + 0.5 * delta / result;
    std::cout << "Computing sqrt of " << x << " to be " << result << std::endl;
  }
  return result;
}

2. 修改顶层目录中的CMakeLists.txt

cmake_minimum_required(VERSION 3.20 FATAL_ERROR)
project(Tutorials)

# 指定C++版本
set(CMAKE_CXX_STANDARD 11)
set(CMAKE_CXX_STANDARD_REQUIRED True)

# 设置版本号
set(Tutorial_VERSION_MAJOR 1)
set(Tutorial_VERSION_MINOR 0)

# 添加配置文件,编译后 TutorialConfig.h.in 将被转化成 TutorialConfig.h 文件,该文件位于项目文件的根目录
configure_file(TutorialConfig.h.in TutorialConfig.h)

# 添加一个名称为 MathFunctions 的库
add_subdirectory(MathFunctions)

add_executable(Tutorial main.cpp)
# 包含特定的头文件查找目录,以便于找到TutorialConfig.h文件
target_include_directories(Tutorial PUBLIC 
                           ${PROJECT_BINARY_DIR}
                           ${PROJECT_SOURCE_DIR}/MathFunctions)
# 添加链接库文件
target_link_libraries(Tutorial PUBLIC MathFunctions)

3. 修改main.cpp文件

#include <iostream>
#include "TutorialConfig.h"
#include "MathFunctions.h"

int main(int argc, char** argv)
{
    std::cout << "Hello World!" << std::endl;
    // 版本信息
    std::cout << " Version: " << Tutorial_VERSION_MAJOR << "." << Tutorial_VERSION_MINOR << std::endl;

	// 指定C++标准
	std::cout << "C++ 11: " << std::atof("100") << std::endl;
	// 添加库
	std::cout << "MathFunctions: " << mysqrt(192.1) << std::endl;
    return EXIT_SUCCESS;
}

  开发工具 最新文章
Postman接口测试之Mock快速入门
ASCII码空格替换查表_最全ASCII码对照表0-2
如何使用 ssh 建立 socks 代理
Typora配合PicGo阿里云图床配置
SoapUI、Jmeter、Postman三种接口测试工具的
github用相对路径显示图片_GitHub 中 readm
Windows编译g2o及其g2o viewer
解决jupyter notebook无法连接/ jupyter连接
Git恢复到之前版本
VScode常用快捷键
上一篇文章      下一篇文章      查看所有文章
加:2021-11-11 12:55:00  更:2021-11-11 12:55:09 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/15 21:01:20-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码