Hi,
In the IOC applications developers guide, chapter 21, there are two
ways
described for registering IOC shell functions. I'm having trouble
getting one of them working on Linux...
In the source file, I have:
epicsRegisterFunction(directoryWaitDef);
and in the included dbd file, I have:
function(directoryWaitDef)
I then build a static library containing the function.
When I build the IOC, the function seems to be built OK into the
executable. If I look inside it, I see:
nm -S bin/linux-x86/BL19I-MO-SIM-01 | grep directory
0804c44c 0000009f T directoryWaitDef
0804e74c 00000004 D pvar_func_register_func_directoryWaitDef
0804c4ec 0000002a t register_func_directoryWaitDef
However, when I start the IOC, the function isn't found.
I'm using EPICS 3.14.8.2.
The same procedure works fine when I build the same IOC for VxWorks.
It isn't a huge problem, because the other method described in the
manual works for my Linux IOC (using the registrar() function in the
dbd
file). But the method above is significantly simpler in the source
code.