• 编译#include <stdio.h> 等用尖括号指定的文件提示找不到 VS googleTest 安装的makeInstall


    1. 我们知道编译的过程:  

         详情:    https://blog.csdn.net/huoyahuoya/article/details/53083424

         a. 预处理: gcc -E hello.c -o hello.i

         b. 编译:   gcc -s hello.c -o hello.s

         c. 汇编: gcc -c hello.c -o hello.o

          d. 链接: gcc hello.o -o hello

    1.1  尖括号的头文件都在哪,当提示找不到时候我改去哪个路径确认?

            当我问include时候 <>括号和“”的区别时候,哪怕是新手都会说:  <>只在系统默认目录. “”时候编译器首先在程序源文件所在目录查找,如果未找到,则去系统默认目录查找,通常用于引用用户自定义的头文件。 那么当你说这就话的时候真的懂么? 好,我再问: 那linux的系统默认目录是哪里呢? 在哪里配置的呢? 呵呵,估计能搞死一票人。

           a. 一般可执行文件的系统默认路径配置在变量$PATH中。 所以我们用echo $PATH可以看到指定的默认路径(所以执行这些路径下面的命令你都不用加绝对路径。比如你在哪里都执行ls, 但是你从没有敲过: /usr/bin/ls )。 当然对于某个可执行文件,你可以查找: $whereis ls ------>ls: /usr/bin/ls /usr/share/man/man1/ls.1.gz /usr/share/man/man1p/ls.1p.gz

           b. 编译时候的动态库静态库是怎么回事?  我们编译的时候可以指定路径:比如 gcc test.c -lhello -L. -o test  命令的-L . ; 我们可以写在配置文件中:  把当前路径加入 /etc/ld.so.conf中然后运行ldconfig,或者以当前路径为参数运行ldconfig(root权限);   我们可以写在环境变量中: 把当前路径加入环境变量LD_LIBRARY_PATH中; 我们还可以把库放到标准库路径下: /lib,/usr/lib/ 【疑问:这两个路径是在哪里指定的?】

               详细内容参考老哥文章,很详细:   https://www.cnblogs.com/liuzhenbo/p/11031130.html     和   https://blog.csdn.net/faihung/article/details/56038870

          c.  <>括号的头文件的系统默认路径在哪里?    我们编译的时候可以指定头文件路径:  gcc -I /mycode/include/node a.c 【-I  ---->i 大写】; 查找环境变量的路径:$ C_INCLUDE_PATH,$CPLUS_INCLUDE_PATH;  系统默认的路径(gcc库文件的路径,各个系统不一致,大部分是 /usr/include   /usr/local/include) 

                详细内容参考老哥文章,很详细:   https://blog.csdn.net/weixin_41783335/article/details/95175238       https://blog.csdn.net/lin_008/article/details/77600483     https://blog.csdn.net/m1223853767/article/details/79440573?utm_medium=distribute.pc_relevant.none-task-blog-BlogCommendFromMachineLearnPai2-1.pc_relevant_is_cache&depth_1-utm_source=distribute.pc_relevant.none-task-blog-BlogCommendFromMachineLearnPai2-1.pc_relevant_is_cache

    1.2  我们怎么看使用的头文件的具体路径呢?

            可以用 gcc -E hello.c -o hello.i。   然后看hell.i中的头文件的路径。

    --------------------------------------------------------------------------------------------------------------------------

    2.   gtest-gmock 下载安装 以及与项目结合  --------方式1  :  单独在服务器上安装gtest-gmock,  项目中包括开发代码和gtest测试代码(但是没有gtest框架)

    2.1    gtest-gmock下载安装准备1----cmake安装

          https://blog.csdn.net/hometing218/article/details/79516686     里面介绍了去哪里下载cmake(联网和不联网两种), 怎么按照cmake(联网和不联网两种)。

           这里介绍几个通用规则:   1。 readme 文件 -------》很多时候readme 文件中记录了此项目是从哪个网址下载的, 以及怎么编译此项目的命令。 所以需要看!!!

                                                     2。 make 和make  install----------> make 是编译,sudo make install 会把用户用到的和此项目相关的头文件啦,动静态库啦,可执行文件啦等等东西安装到                                                           系统的默认路径里面   例如 lib--->/usr/local/lib    头文件--->/usr/local/include 等等

                                                         详情:  https://www.jianshu.com/p/c70afbbf5172

    2.2    gtest-gmock下载安装准备2----gtest-gmock安装

            

    --------------------------------------------------------------------------------------------------------------------------

    3.   gtest-gmock下载安装以及与项目结合--------方式2:   项目中包括开发代码,gtest测试代码和 gtest框架

  • 相关阅读:
    简明python_Day2_字典、集合、模块、类、编程习惯
    测试2T2
    测试2T1
    bzoj2761
    一元三次方程求根公式及韦达定理
    状压DP入门——铺砖块
    高精度模板
    测试1T3
    测试1T2
    测试1T1
  • 原文地址:https://www.cnblogs.com/silentNight/p/13971420.html
Copyright © 2020-2023  润新知