EPICS Controls Argonne National Laboratory

Experimental Physics and
Industrial Control System

1994  1995  1996  1997  1998  1999  2000  2001  2002  2003  2004  2005  2006  2007  2008  2009  2010  2011  2012  2013  2014  2015  2016  2017  2018  2019  2020  2021  2022  2023  2024  2025  <2026 Index 1994  1995  1996  1997  1998  1999  2000  2001  2002  2003  2004  2005  2006  2007  2008  2009  2010  2011  2012  2013  2014  2015  2016  2017  2018  2019  2020  2021  2022  2023  2024  2025  <2026
<== Date ==> <== Thread ==>

Subject: epicsThreadOpts undeclared identifier windows build error
From: "Peterson, Kevin M. via Tech-talk" <tech-talk at aps.anl.gov>
To: EPICS Tech Talk <tech-talk at aps.anl.gov>
Date: Fri, 23 Jan 2026 20:07:39 +0000
I'm trying to resolve some Windows github actions build errors in the motorAttocube module and I'm very confused.  I apologize in advance for all the mangled URLs.

The "3.15 Win VS2022, static" build of "ci build fixes #13" of motorAttocube fails with an error that epicsThreadOpts is undeclared:

D:\a\motorAttocube\motorAttocube\attocubeApp\src\motorAttocubeDriver.cc(356): error C2065: 'epicsThreadOpts': undeclared identifier

source: https://urldefense.us/v3/__https://gcc02.safelinks.protection.outlook.com/?url=https*3A*2F*2Fgithub.com*2Fepics-motor*2FmotorAttocube*2Factions*2Fruns*2F21298952207*2Fjob*2F61311585230*23step*3A9*3A138&data=05*7C02*7Ctech-talk*40aps.anl.gov*7C38676d86341e4c5de76708de5abb0f77*7C0cfca18525f749e38ae7704d5326e285*7C0*7C0*7C639047956616784812*7CUnknown*7CTWFpbGZsb3d8eyJFbXB0eU1hcGkiOnRydWUsIlYiOiIwLjAuMDAwMCIsIlAiOiJXaW4zMiIsIkFOIjoiTWFpbCIsIldUIjoyfQ*3D*3D*7C0*7C*7C*7C&sdata=oxyOQO8RW8Qm5oDKytTIK0o6jJ4Fph*2FpkRrG5DrfzTU*3D&reserved=0__;JSUlJSUlJSUlJSUlJSUlJSUlJSUlJSUlJSUlJSUlJQ!!G_uCfscf7eWS!bZy8PTGyn34ALuCbXJqj1cQ-u6Mb-2rpx0dOcSWECpvi4IESxRhxQnHEpUyHlWIGS_XDH8GNDuASc74HuaXDcuQ$ 

motorAttocubeDriver.cc is including epicsThread.h:

https://urldefense.us/v3/__https://gcc02.safelinks.protection.outlook.com/?url=https*3A*2F*2Fgithub.com*2Fepics-motor*2FmotorAttocube*2Fblob*2Fa67c5f37b6541c7c600ce7a996a8de946b76c921*2FattocubeApp*2Fsrc*2FmotorAttocubeDriver.cc*23L15&data=05*7C02*7Ctech-talk*40aps.anl.gov*7C38676d86341e4c5de76708de5abb0f77*7C0cfca18525f749e38ae7704d5326e285*7C0*7C0*7C639047956616809001*7CUnknown*7CTWFpbGZsb3d8eyJFbXB0eU1hcGkiOnRydWUsIlYiOiIwLjAuMDAwMCIsIlAiOiJXaW4zMiIsIkFOIjoiTWFpbCIsIldUIjoyfQ*3D*3D*7C0*7C*7C*7C&sdata=j6JWcHFKynCAdKu1irsHzRadrqM*2FsOGfade2Uy*2FLWTg*3D&reserved=0__;JSUlJSUlJSUlJSUlJSUlJSUlJSUlJSUlJSUlJSUl!!G_uCfscf7eWS!bZy8PTGyn34ALuCbXJqj1cQ-u6Mb-2rpx0dOcSWECpvi4IESxRhxQnHEpUyHlWIGS_XDH8GNDuASc74Hh84YYnw$ 

which is where epicsThreadOpts is declared:

https://urldefense.us/v3/__https://gcc02.safelinks.protection.outlook.com/?url=https*3A*2F*2Fgithub.com*2Fepics-base*2Fepics-base*2Fblob*2Fd3e414cbecb7ea06c65d8ecd85797653af74646e*2Fmodules*2Flibcom*2Fsrc*2Fosi*2FepicsThread.h*23L154-L165&data=05*7C02*7Ctech-talk*40aps.anl.gov*7C38676d86341e4c5de76708de5abb0f77*7C0cfca18525f749e38ae7704d5326e285*7C0*7C0*7C639047956616825836*7CUnknown*7CTWFpbGZsb3d8eyJFbXB0eU1hcGkiOnRydWUsIlYiOiIwLjAuMDAwMCIsIlAiOiJXaW4zMiIsIkFOIjoiTWFpbCIsIldUIjoyfQ*3D*3D*7C0*7C*7C*7C&sdata=vHl7xyutcGIZpl4xSkEy7JeJzVh3Uufr86RPRWVbv08*3D&reserved=0__;JSUlJSUlJSUlJSUlJSUlJSUlJSUlJSUlJSUlJSUl!!G_uCfscf7eWS!bZy8PTGyn34ALuCbXJqj1cQ-u6Mb-2rpx0dOcSWECpvi4IESxRhxQnHEpUyHlWIGS_XDH8GNDuASc74HF-WPx0M$ 

The AttocubeController constructor is where the error occurs:

https://urldefense.us/v3/__https://gcc02.safelinks.protection.outlook.com/?url=https*3A*2F*2Fgithub.com*2Fepics-motor*2FmotorAttocube*2Fblob*2Fa67c5f37b6541c7c600ce7a996a8de946b76c921*2FattocubeApp*2Fsrc*2FmotorAttocubeDriver.cc*23L356-L363&data=05*7C02*7Ctech-talk*40aps.anl.gov*7C38676d86341e4c5de76708de5abb0f77*7C0cfca18525f749e38ae7704d5326e285*7C0*7C0*7C639047956616843378*7CUnknown*7CTWFpbGZsb3d8eyJFbXB0eU1hcGkiOnRydWUsIlYiOiIwLjAuMDAwMCIsIlAiOiJXaW4zMiIsIkFOIjoiTWFpbCIsIldUIjoyfQ*3D*3D*7C0*7C*7C*7C&sdata=46MqsNK1fQlO*2F*2B2Pmk5CKfwBP6vhOUZubaN42fJdhSs*3D&reserved=0__;JSUlJSUlJSUlJSUlJSUlJSUlJSUlJSUlJSUlJSUl!!G_uCfscf7eWS!bZy8PTGyn34ALuCbXJqj1cQ-u6Mb-2rpx0dOcSWECpvi4IESxRhxQnHEpUyHlWIGS_XDH8GNDuASc74Ht1Hribg$ 

The driver is calling epicsThreadCreateOpt to make the thread joinable.  Most other motor drivers call epicsThreadCreate instead.

Is something else needed on Windows in addition to including epicsThread.h to make this work?

Thanks,

Kevin

Replies:
Re: epicsThreadOpts undeclared identifier windows build error Johnson, Andrew N. via Tech-talk

Navigate by Date:
Prev: Re: [Ext]Re: Modbus linked read/write question Jesse Hopkins via Tech-talk
Next: Re: epicsThreadOpts undeclared identifier windows build error Johnson, Andrew N. via Tech-talk
Index: 1994  1995  1996  1997  1998  1999  2000  2001  2002  2003  2004  2005  2006  2007  2008  2009  2010  2011  2012  2013  2014  2015  2016  2017  2018  2019  2020  2021  2022  2023  2024  2025  <2026
Navigate by Thread:
Prev: Re: [Ext]Re: Modbus linked read/write question Mark Rivers via Tech-talk
Next: Re: epicsThreadOpts undeclared identifier windows build error Johnson, Andrew N. via Tech-talk
Index: 1994  1995  1996  1997  1998  1999  2000  2001  2002  2003  2004  2005  2006  2007  2008  2009  2010  2011  2012  2013  2014  2015  2016  2017  2018  2019  2020  2021  2022  2023  2024  2025  <2026
ANJ, 19 Mar 2026 · Home · News · About · Talk · Base · Modules · Extensions ·
· Distributions · Download · Documents · Links · Licensing ·