如何在linux下完成一个项目的搭建

最近在学习"极客时间"中盛延敏老师的课程——"网络编程实战"。但是有些代码自己写的时候发现总是报错 ,不是这里没找到no such file or directory,就是莫名的 xxxx函数没有定义,我倒。花了好几天时间重新去研究编译链接这一块,专门来做一个总结。

我这次用盛延敏老师定义的头文件common.h,其中包含了常用的网络编程头文件,以及他自己声明的一些函数。这里就涉及到include路径。如果找不到xxx.h头文件,显示“no such file or directory”,就是自己没设置好include路径,你想啊,比如你现在下了一个项目,我们就把这个叫b文件夹,里面有myhead.h这种头文件,你直接去编译,那肯定不行,就比如编译器一开始只能去搜文件夹们a,它就只会在a中去找,现在你不把头文件放到他认识的文件夹们a了 ,直接丢在b文件夹,它肯定是不会去找的。所以你得按照它的找东西习惯,那么学习它找头文件的顺序就至关重要,所以我先在这里总结了编译器找头文件的顺序:

如何查看和修改gcc、g++默认include路径

然后现在我们搞定了头文件#include的问题,可是你一编译又错了,显示xxxx函数没定义,那肯定了,你刚刚只包含了头文件 ,里面全是需要用的头文件和一些需要用的函数的声明,人家的实现全部打包起来扔到一个库里面了 ,这里的库文件是libyolanda.a,可以看出来是个静态库,其中包含了头文件中声明的函数的实现。

那么此时你肯定也得告诉编译器,诶,我的库文件放在那里额。不然编译器很固执只会找它规定的查找路径,然后我又总结了下编译器查找库文件的顺序:

linux下链接库文件默认搜索路径

这样再把库文件路径一搞定,整个可执行文件就弄好了,就可以执行了。我在这里用的是CMakelist.txt直接运行的指令cmake,然后make一下就行了 。

 

总结一下:一开始秋招的时候天天背源码生成可执行文件的过程包括“预处理,编译,汇编,链接”,感觉里面知识点是滚瓜烂熟了,可是和实际结合的时候就真发现成了纸上谈兵了。这里由于我用了cmake工具来辅助,所以只用帮着把include和库文件的路径设计一下就可以了。不过也是最基础的~还是要不断练习啊。

 

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值