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

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源代码。
深入 C 语言和程序运行原理 实战项目代码在CentOS 7上编译_第1张图片

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.

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

参考《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 ..执行。
深入 C 语言和程序运行原理 实战项目代码在CentOS 7上编译_第3张图片

make进行编译。
深入 C 语言和程序运行原理 实战项目代码在CentOS 7上编译_第4张图片

安装uriparser

wget https://github.com/uriparser/uriparser/archive/refs/tags/uriparser-0.9.6.tar.gz下载uriparser-0.9.6源代码。
深入 C 语言和程序运行原理 实战项目代码在CentOS 7上编译_第5张图片

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)

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

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/)添加对应的位置。
深入 C 语言和程序运行原理 实战项目代码在CentOS 7上编译_第7张图片

cmake -DCMAKE_BUILD_TYPE=Release .. -DURIPARSER_BUILD_DOCS=OFF正常运行。
深入 C 语言和程序运行原理 实战项目代码在CentOS 7上编译_第8张图片

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

make进行编译。
深入 C 语言和程序运行原理 实战项目代码在CentOS 7上编译_第9张图片

make install进行安装。
深入 C 语言和程序运行原理 实战项目代码在CentOS 7上编译_第10张图片

编译源代码

git clone https://github.com/Becavalier/tiny-http-echo-server.git下载源代码。
深入 C 语言和程序运行原理 实战项目代码在CentOS 7上编译_第11张图片

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

mkdir build && cd build && cmake .. && cmake --build .进行编译。
深入 C 语言和程序运行原理 实战项目代码在CentOS 7上编译_第12张图片

./http-echo-server执行。
深入 C 语言和程序运行原理 实战项目代码在CentOS 7上编译_第13张图片

在自己本机的浏览器里边输入127.0.0.1:8080/?foo=1&num=10,然后按下回车,就可以显示出来结果。
深入 C 语言和程序运行原理 实战项目代码在CentOS 7上编译_第14张图片

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

你可能感兴趣的:(C语言,c语言,centos)