编译#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框架