HAL Driver. Undefined reference to hal_export_func

05 Dec 2017 22:43 - 05 Dec 2017 22:43 #102708 by AndrewHsasku
I would compile this example code: github.com/LinuxCNC/linuxcnc/blob/master...ivers/hal_skeleton.c
All my attempts finishes with error: In function 'rtapi_app_main' Undefined reference to hal_export_func
No idea whats is a reason. Cant find another example code or valid makefile example. No idea what is this error caused by.
Last edit: 05 Dec 2017 22:43 by AndrewHsasku.
06 Dec 2017 00:28 #102713 by rodw
The error appears to be coming from line 177.

At a guess, I would say there is a missing header file (.h) or the library containing the function is not being linked in.

Sorry, I have not dug into the Linuxcnc internals to that level to be of real help.
06 Dec 2017 02:42 #102716 by AnnoyingMutt
How are you compiling this ? What process are you using ?
06 Dec 2017 12:20 #102717 by AndrewHsasku
gcc -Os -g -I. -I/usr/realtime-3.4-9-rtai-686-pae/include -I. -I/usr/realtime-3.4-9-rtai-686-pae/include -I/usr/include/i386-linux-gnu -U_FORTIFY_SOURCE -D_FORTIFY_SOURCE=0 -fno-math-errno -funsafe-math-optimizations -fno-rounding-math -fno-signaling-nans -fcx-limited-range -mhard-float -DRTAI=3 -fno-fast-math -mieee-fp -fno-unsafe-math-optimizations -DRTAPI -D_GNU_SOURCE -Drealtime -D__MODULE__ -I/usr/include/linuxcnc -Wframe-larger-than=2560 -URTAPI -U__MODULE__ -DULAPI -Os -I/usr/include/glib-2.0 -I/usr/lib/i386-linux-gnu/glib-2.0/include     -c -o driver.o driver.c
gcc -o driver driver.o -Wl,-rpath,/lib -L/lib -llinuxcnchal -lglib-2.0
06 Dec 2017 12:47 #102718 by rodw
So what file is this procedure in?

Are you compiling it?
Are you linking it?
06 Dec 2017 13:57 #102719 by andypugh
The function is defined in hal.h


And is wrapped in an #ifdef RTAPI.

So, I suspect that you might not be running a realtime kernel, or that the environment is not correctly configured.

Can you compile the module with "halcompile" ?
06 Dec 2017 19:59 - 10 Dec 2017 02:17 #102730 by AndrewHsasku
You got a point: RTAPI is not defined (#ifndef RTAPI executes).
Working on o pure copy of linuxcnc-2.7-wheezy (linuxcnc-dev is installed) installed on VirtualBoxVM.
a@debian:~/Desktop/driver$ uname -a
Linux debian 3.4-9-rtai-686-pae #1 SMP PREEMPT Debian 3.4.55-4linuxcnc i686 GNU/Linux

No idea how to use halcompile:
halcompile --compile driver.c
prints some trivial errors like stdlib.h: No such file or directory

After long tries, I just stopped using anything that caused errors and succeeded in compiling with halcompile.
More info and problems in next topics.
Last edit: 10 Dec 2017 02:17 by AndrewHsasku.
Time to create page: 0.083 seconds
Powered by Kunena Forum