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.txt
把set(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_DIRGTEST_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 leastversion "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.txt
把set(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 语言和程序运行原理》。