深入 C 语言和程序运行原理 实战项目代码在CentOS 7上编译

news2024/12/26 21:30:57

cat /etc/redhat-release看到操作系统的版本是CentOS Linux release 7.6.1810 (Core)uname -r可以看到内核版本是3.10.0-957.21.3.el7.x86_64
在这里插入图片描述

安装gtest

参考博客《使用gtest和lcov测试代码覆盖率》
wget https://github.com/google/googletest/archive/refs/tags/release-1.11.0.tar.gz下载gtest源代码。
在这里插入图片描述

tar -zxf release-1.11.0.tar.gz进行解压。
在这里插入图片描述

cd googletest-release-1.11.0/googletest/进入源代码目录里边。
在这里插入图片描述

mkdir build && cd build创建build目录并且进入里边。
在这里插入图片描述

cmake ..发现报错如下:

CMake Error at CMakeLists.txt:132 (set_target_properties):
  set_target_properties called with incorrect number of arguments.

在这里插入图片描述

参考《googletest CMake Error at CMakeLists.txt:127 (set_target_properties)解决办法》解决问题。
sed -i '1i set(GOOGLETEST_VERSION 1.11.0)' ../CMakeLists.txtset(GOOGLETEST_VERSION 1.11.0)写入到第一行前边,head -n 1 ../CMakeLists.txt可以看一下内容。
在这里插入图片描述

rm -rf CMake*把缓存清空。
在这里插入图片描述

cmake ..执行。
在这里插入图片描述

make进行编译。
在这里插入图片描述

安装uriparser

wget https://github.com/uriparser/uriparser/archive/refs/tags/uriparser-0.9.6.tar.gz下载uriparser-0.9.6源代码。
在这里插入图片描述

tar -zxf uriparser-0.9.6.tar.gz进行解压,cd uriparser-uriparser-0.9.6/进入到解压的目录。
在这里插入图片描述

mkdir build创建build目录,cd build进入目录。
在这里插入图片描述

cmake -DCMAKE_BUILD_TYPE=Release .. -DURIPARSER_BUILD_DOCS=OFF报错如下:

CMake Error at /usr/local/share/cmake-3.25/Modules/FindPackageHandleStandardArgs.cmake:230 (message):
  Could NOT find GTest (missing: GTEST_LIBRARY GTEST_INCLUDE_DIR
  GTEST_MAIN_LIBRARY) (Required is at least version "1.8.0")
Call Stack (most recent call first):
  /usr/local/share/cmake-3.25/Modules/FindPackageHandleStandardArgs.cmake:600 (_FPHSA_FAILURE_MESSAGE)
  /usr/local/share/cmake-3.25/Modules/FindGTest.cmake:270 (FIND_PACKAGE_HANDLE_STANDARD_ARGS)
  CMakeLists.txt:264 (find_package)

cp /root/googletest-release-1.11.0/googletest/build/lib/*.a /usr/lib将生成的动态库复制到/usr/lib目录底下。
在这里插入图片描述
cmake -DCMAKE_BUILD_TYPE=Release .. -DURIPARSER_BUILD_DOCS=OFF发现还报错如下:

CMake Error at /usr/local/share/cmake-3.25/Modules/FindPackageHandleStandardArgs.cmake:230 (message):
  Could NOT find GTest (missing: GTEST_INCLUDE_DIR) (Required is at least
  version "1.8.0")
Call Stack (most recent call first):
  /usr/local/share/cmake-3.25/Modules/FindPackageHandleStandardArgs.cmake:600 (_FPHSA_FAILURE_MESSAGE)
  /usr/local/share/cmake-3.25/Modules/FindGTest.cmake:270 (FIND_PACKAGE_HANDLE_STANDARD_ARGS)
  CMakeLists.txt:264 (find_package)

在这里插入图片描述

cp /root/googletest-release-1.11.0/googletest/build/lib/*.a /usr/local/lib将生成的动态库复制到/usr/local/lib目录底下。
在这里插入图片描述

rm -rf ./*把当前目录里边的内容删除。
在这里插入图片描述

vim ../CMakeLists.txtset(GTEST_INCLUDE_DIR /root/googletest-release-1.11.0/googletest/include/)添加对应的位置。
在这里插入图片描述

cmake -DCMAKE_BUILD_TYPE=Release .. -DURIPARSER_BUILD_DOCS=OFF正常运行。
在这里插入图片描述

cd ..回到上一级目录。
在这里插入图片描述

make进行编译。
在这里插入图片描述

make install进行安装。
在这里插入图片描述

编译源代码

git clone https://github.com/Becavalier/tiny-http-echo-server.git下载源代码。
在这里插入图片描述

cd tiny-http-echo-server/进入源代码目录里边。
在这里插入图片描述

mkdir build && cd build && cmake .. && cmake --build .进行编译。
在这里插入图片描述

./http-echo-server执行。
在这里插入图片描述

在自己本机的浏览器里边输入127.0.0.1:8080/?foo=1&num=10,然后按下回车,就可以显示出来结果。
在这里插入图片描述

此文章为12月Day 1学习笔记,内容来源于极客时间《深入 C 语言和程序运行原理》。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1275514.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

YOLOv5项目实战(5)— 算法模型优化和服务器部署

前言:Hello大家好,我是小哥谈。近期,作者所负责项目中的算法模型检测存在很多误报情况,为了减少这种误报情况,作者一直在不断优化算法模型。鉴于此,本节课就给大家详细介绍一下实际工作场景中如何去优化算法模型和进行部署,另外为了方便大家进行模型训练,作者在文章中提…

Promise的resolve和reject方法(手写题)

1.resolve 2.reject 3.手写 1.resolve //构造函数上添加 resolve 方法 Promise.resolve function (value) {return new Promise((resolve, reject) > {if (value instanceof Promise) {value.then((val) > {resolve(val)},(err) > {reject(err)})} else {resolve(v…

国内首所国际职业培训学院落户深圳盐田揭幕开业

11月26日,中科国药•中科大有大健康上市企业孵化平台迎来了国内首所国际职业学院——深圳市盐田区国际职业培训学院的正式落成与揭幕仪式。中科大有高新科技有限公司董事长、长江商学院MBA\FMBA金融导师、深圳市中科国药生物医药研究院理事长、深圳市盐田区国际职业…

HarmonyOS到底有哪些独特之处?你真正了解鸿蒙多少!

鸿蒙系统太炸裂了💥我已经后悔了😭后悔没早点学习鸿蒙 HarmonyOS 概念,系统定位 1:鸿蒙系统是由华为公司自主研发的全球化开放源代码操作系统,它具有以下特别之处: 2:分布式架构:…

华为鸿蒙工程师成“热门”!最高年薪160万,只看技术不看年龄

引言: 今天,在互联网行业,超过30岁的工程师往往被认为是“码农”的生命周期终点。然而,华为鸿蒙系统的崛起,却再次给予了这些35岁以上的工程师们第二春的机会。国内一线互联网公司纷纷向鸿蒙系统靠拢,导致…

c语言练习13周(1~5)

输入任意整数n求以下公式和的平方根。 读取一系列的整数 X,对于每个 X,输出一个 1,2,…,X 的序列。 编写double fun(int a[M][M])函数,返回二维数组周边元素的平均值,M为定义好的符号常量。 编写double fun(int a[M])函…

设计模式-结构型模式之桥接设计模式

文章目录 三、桥接模式 三、桥接模式 桥接模式(Bridge)是用于把抽象化与实现化解耦,使得二者可以独立变化。它通过提供抽象化和实现化之间的桥接结构,来实现二者的解耦。 这种模式涉及到一个作为桥接的接口,使得实体类…

Unity 使用Horizontal Layout Group和Toggle制作多个水平开关按钮实现自动排列和单个点击放大后的自动排列。

Unity的布局组件Horizontal Layout Group是很好用的,当然也包括其它布局组件也一样好用。 比如要实现多按钮开关自动水平排列,那么就可以使用它了。 首先我们为按钮创建个父物体(我这里使用了Scroll View中的Content作为父物体)…

elementUI实现根据屏幕大小自适应换行,栅格化布局

需求: 默认一行展示4个卡片;当屏幕小于某个大小的时候,一行展示3个卡片;再小就展示2个;以此类推,最小就展示1个。 效果卡片样式如下图: 默认一行4个 屏幕缩小到某个阈值,一行展示…

11.26电梯控制器设计分析

项目三 电梯控制器设计(*****) 设计一个多楼层的电梯控制器系统,并能在开发板上模拟电梯运行状态。可以利用按键作为呼叫按键,数码管显示电梯运行时电梯所在楼层,led灯显示楼层叫梯状态。 就是初始默认在1楼&#xff0…

【LeetCode:1657. 确定两个字符串是否接近 | 计数 + 阅读理解】

🚀 算法题 🚀 🌲 算法刷题专栏 | 面试必备算法 | 面试高频算法 🍀 🌲 越难的东西,越要努力坚持,因为它具有很高的价值,算法就是这样✨ 🌲 作者简介:硕风和炜,…

Kaggle-水果图像分类银奖项目 pytorch Densenet GoogleNet ResNet101 VGG19

一些原理文章 卷积神经网络基础(卷积,池化,激活,全连接) - 知乎 PyTorch 入门与实践(六)卷积神经网络进阶(DenseNet)_pytorch conv1x1_Skr.B的博客-CSDN博客GoogLeNet网…

Web 实时消息推送

Web 实时消息推送详解 什么是消息推送? 推送的场景比较多,比如有人关注我的公众号,这时我就会收到一条推送消息,以此来吸引我点击打开应用。 消息推送通常是指网站的运营工作等人员,通过某种工具对用户当前网页或移…

最小化安装 Neokylin7.0 用于搭建 Hadoop 集群

文章目录 环境搭建背景虚拟机创建和环境配置安装过程注意事项虚拟机设置软件选择KOUMP系统分区网络和主机名打开以太网,并记录信息配置 IPv4修改主机名 创建用户 hadoop完全分布式搭建-CSDN博客 环境搭建背景 为什么不从hadoop100或者hadoop101开始,而是…

引领数据趋势:2023年最值得关注的十大ETL数据集成工具

在这个数据至上的时代,对于以数据为驱动的组织来说,建立一个信息集中的强大源头是成功的关键。众多企业依靠ETL工具来管理和理解它们的数据。 ETL,即提取(Extract)、转换(Transform)、加载&…

matlab基于线性二次调节器(LQR)法实现机器人路径规划可变轨迹跟踪

1、内容简介 略 可以交流、咨询、答疑 2、内容说明 基于线性二次调节器(LQR)法实现机器人路径规划可变轨迹跟踪 3、仿真分析 略 load path.mat %% 轨迹处理 % 定义参考轨迹 refPos_x path(:,1); refPos_y path(:,2); refPos [refPos_x, refPos_y];% 计算航向角和曲率 …

python的制图

测试数据示例: day report_user_cnt report_user_cnt_2 label 2023-10-01 3 3 欺诈 2023-10-02 2 4 欺诈 2023-10-03 6 5 欺诈 2023-10-04 2 1 正常 2023-10-05 4 3 正常 2023-10-06 4 4 正常 2023-10-07 2 6 正常 2023-10-08 3 7 正常 2023-10-09 3 12 正常 2023-…

【MySQL】MySQL安装 环境初始化

MySQL安装 MYSQL官网 安装完成后,傻瓜下一步即可 配置一下环境变量即可 (1) 初始化MySQL, 管理员身份运行 mysqld --initialize-insecure(2) 注册 mysqld mysqld -install# 如果记录以前的版本执行下面指令 mysqld -remove(3) 启动MySQL服务 // 启动mysql服务 net start …

对 Vision Transformers 及其基于 CNN-Transformer 的变体的综述

A survey of the Vision Transformers and its CNN-Transformer based Variants 摘要1、介绍2、vit的基本概念2.1 patch嵌入2.2 位置嵌入2.2.1 绝对位置嵌入(APE)2.2.2 相对位置嵌入(RPE)2.2.3卷积位置嵌入(CPE) 2.3 注意力机制2.3.1多头自我注意(MSA) 2.4 Transformer层2.4.1 …

NX二次开发UF_MTX2_identity 函数介绍

文章作者:里海 来源网站:https://blog.csdn.net/WangPaiFeiXingYuan UF_MTX2_identity Defined in: uf_mtx.h void UF_MTX2_identity(double identity_mtx [ 4 ] ) overview 概述 Returns a 2 x 2 identity matrix. 返回一个2 x 2的单位矩阵。 UFUN…