文章
Linux下的 EtherCAT Master 安装与编译环境配置
Installation
执行软件包目录中 install script, sudo ./install。
VS code with gcc compiler
在vs code的工作目录中的tasks.json文件内添加如下参数,就能在VS code中直接build执行文件。
"args": [
"-l",
"ecMaster"
],
Windows下的 EtherCAT Master 安装与编译环境配置
Installation
安装软件包路径EtherCAT_CD_2024-12-17.ZIP\CD\EtherCAT_Master\Windows\EtherCAT_Master_Win_V1102_Trial.exe 。
安装完成后,可以看到 C:\Windows\System32\ecmcore.dll 文件。
查看 C:\Program Files\esd\EtherCAT\Master 和 C:\Users\bobtu\Documents\ESD\EtherCAT\Master\example 两个目录, esd EtherCAT Master 软件都在此两个目录中。
VS code with cl.exe compiler
新增几个系统环境变量VsInstDir, WinEcatDir, WinKitsDir,如下图。

在系统 Path 变量中增加几个目录,如下图。

此处以Visual Studio Code (VSCode) 作为 IDE 为例进行介绍。
- Configure VS Code for Microsoft C++
- 创建一个目录,名为
ecm_workspace,并将C:\Users\bobtu\Documents\ESD\EtherCAT\Master\example\中的两个文件ecmTest.c和getopt_long.c拷贝到此目录。 - 将如下两个文件 c_cpp_properties.json 和 tasks.json 替换或者拷贝至
.vscode目录中。 - 打开
ecmTest.c,运行Terminal -> Run Build Task...,执行C/C++: cl.exe build active file,若有如下信息显示,则证明编译环境搭建完成。
* Executing task: C/C++: cl.exe build active file
Starting build...
cmd /c chcp 65001>nul && cl.exe /Zi /EHsc /nologo /FeC:\Users\bobtu\Documents\ecm_workspace\ecmTest\ecmTest.exe C:\Users\bobtu\Documents\ecm_workspace\ecmTest\ecmTest.c getopt_long.c "/IC:\Program Files\ESD\EtherCAT\Master\include" "/IC:\Program Files (x86)\Windows Kits\10\include\10.0.26100.0\ucrt" "/IC:\Program Files (x86)\Windows Kits\10\include\10.0.26100.0\um" "/IC:\Program Files (x86)\Windows Kits\10\include\10.0.26100.0\shared" "/IC:\Program Files (x86)\Microsoft Visual Studio\2022\BuildTools\VC\Tools\MSVC\14.44.35207\include" /link "C:\Program Files\ESD\EtherCAT\Master\lib\x64\ecmcore.lib" "/LIBPATH:C:\Program Files (x86)\Windows Kits\10\Lib\10.0.26100.0\um\x64" "/LIBPATH:C:\Program Files (x86)\Windows Kits\10\Lib\10.0.26100.0\ucrt\x64" "/LIBPATH:C:\Program Files (x86)\Microsoft Visual Studio\2022\BuildTools\VC\Tools\MSVC\14.44.35207\lib\x64"
ecmTest.c
getopt_long.c
Generating Code...
Build finished successfully.
* Terminal will be reused by tasks, press any key to close it.