EtherCAT学习笔记——修改Makefile

文章介绍了如何在LinuxCNC环境中安装和配置基于Preempt-RT、Xenomai和RTAI的IgHEtherCATMaster,并详细讲解了如何修改Makefile以实现多文件编译,解决函数未定义的错误,包括添加依赖和修改编译规则,使项目能正确编译和运行。

系列文章目录

第一章 LinuxCNC与EtherCAT

第二章 安装LinuxCNC

第三章 基于Preempt -RT的IgH EtherCAT Master安装

第四章 基于Xenomai3.1的IgH EtherCAT Master安装

第五章 基于RTAI的IgH EtherCAT Master安装

第六章 修改MakeFile

杂记: Linux配置杂记


目录

系列文章目录

前言

一、Makefile解析

二、Makefile修改

三、编译结果

总结

参考链接


前言

        修改Igh EtherCAT主站的Makefile,实现基于例子的多文件编译


一、Makefile解析

        在还没进行Makefile的修改时,在main函数中添加在test.c中的函数test(),即使已经做好头文件的包含和声明,由于Makefile的编译并没有链接,所以会产生未定义的错误,如图1

图1 编译错误——函数未定义引用

         对Makefile的规则进行了解后(1),找到问题的关键在“目标:依赖”这一项中。

        对原来的例程进行一次清理和重新生成后,我们可以知道目标的名字是什么,代码如下。

sudo make clean
sudo make

        本文的路径为/ethercat_test/examples/dc_user (test),生成的目标名为ec_dc_user_example,因此以此为关键词在Makefile中搜索,可得结果如图2

图2 目标:依赖
ec_dc_user_example$(EXEEXT): $(ec_dc_user_example_OBJECTS) $(ec_dc_user_example_DEPENDENCIES) $(EXTRA_ec_dc_user_example_DEPENDENCIES) 
	@rm -f ec_dc_user_example$(EXEEXT)
    $(AM_V_CCLD)$(ec_dc_user_example_LINK) $(ec_dc_user_example_OBJECTS) $(ec_dc_user_example_LDADD) $(LIBS)

        对第一行的代码进行解析,第一行代码顶格,从Makefile规则可知此行代码为编译规则,其中

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值