1
42
¥ 79.00购买
开通会员,立省7.90元, 立即开通
立即购买

你将收获

1)独立开展一个中小型项目的能力

2)对软件构造系统、程序的编译、链接有更深入理解

3)熟练掌握对静态库、动态库的生成和使用

适用人群

中高级研发工程师

课程介绍

Makefile工程实战视频培训课程,该教程介绍Linux环境下开发软件编译Makefile的基础知识、项目构建、一步一步从零开始写一个模拟MP3项目的Makefile。

课程讨论

请问我的.d文件包含以后不起作用是什么原因造成的呢?

老师,说好的课后习题答案呢?你说答案公布在zhaixue.cc上面,可是4年过去了,答案还没上传呀。。。

很有收获,就是有杂音杂音杂音杂音杂音

老铁,充点钱买点好的录屏软件吧,声音这么嘈杂。。。。

我实在是想不通,3.4 节中,为什么 目标文件 .o 没有生成 还有 给 BIN := XXX 后,为什么没问题? 别的文件也会执行BIN 了

老您好 课程的课件方便提供吗 就是那几个工程的makefile文件夹

老师好,我编译使用make指令编译第(20. 3.9支持第三方静态库、动态库的使用)课件中的make指令时,总是提示 /usr/bin/ld: skipping incompatible ~/lib/ext_lib/libjpg.a when searching for -ljpg /usr/bin/ld: skipping incompatible /usr/lib/gcc/x86_64-linux-gnu/7/../../../../lib/libjpg.a when searching for -ljpg /usr/bin/ld: skipping incompatible /usr/lib/../lib/libjpg.a when searching for -ljpg /usr/bin/ld: skipping incompatible /usr/lib/gcc/x86_64-linux-gnu/7/../../../libjpg.a when searching for -ljpg /usr/bin/ld: skipping incompatible //usr/lib/l

看了下面有个人说稀里糊涂,深以为然啊,我也觉得稀里糊涂,只知道说要这么写,但是不知道为什么这样写

买了51cto的课程,又买了csdn的课程,发现竟然是同一套课程,除了封面不一样,里面的内容时一模一样。老师讲的还好,若是能在一些知识点上解释的更详细些就更好了,演示了例子,但是在很多做法上都不理解,即不理解,那也记不住,即记不住,那看了也是白看,浪费时间浪费精力浪费金钱

老师讲的课程不错,挺好,能把人讲明白了,就是老师的能力!

同学笔记

  • hhysdo 2020-04-07 16:38:14

    来源:1.1 Makefile基本概念 查看详情

    Makefile的用途:

    描述了整个工程的编译、链接规则;

    软件项目的自动化编译

     

    过程:.c文件编译成.o(目标文件),目标文件链接成可执行文件

     

    配合c语言项目一同使用

     

     

     

     

  • weixin_40746176 2020-02-09 16:43:02

    来源:2.6 库的生成和使用:静态库和动态库 查看详情

    linux下生成静态/动态链接库

    例:

    生成hello.o可连接文件

    gcc -o hello.o -c hello.c

    将hello.o文件转为库文件,lib为文件头,.a为文件尾

    ar rcs libhello.a hello.o

    编译其他文件时如下方式引用,L后面跟库的路径,l后面跟库的名称

    gcc -o test test.c -L路径 -l名称

    生成动态链接库可以合并操作为

    gcc -o libhello.so -fPIC -shared hello.c

     

    动态库:

    生成位置无关的文件

    gcc -o hello.o -fPIC -c hello.c

    生成动态库

    gcc -o libhello.so -shared hello.o

    被引用时与静态库相同

    gcc -o test test.c -L路径 -l库名称

    使用自己创建的动态库时要将它拷贝到默认库路径。

  • weixin_40746176 2020-02-09 15:34:18

    来源:2.4 条件执行 查看详情

    条件执行

    使用ifeq else  endif关键字进行操作

    例如

    DEBUG = true

    ifeq ($(DEBUG),true)

    VERSION = debug

    else

    VERSION = release

    endif

没有更多了