halcompile missing additionnal include file
- oro06
- Offline
- New Member
Less
More
- Posts: 7
- Thank you received: 0
24 Oct 2018 11:08 #119326
by oro06
halcompile missing additionnal include file was created by oro06
Hi,
i'm working on userspace wj200_vfd
i've added a local include file wj200_vfd.h in the declaration section of the comp file
and halcompile --preprocess works fine and generate .c file to the local folder
when invoking
halcompile --compile wj200_vfd.comp
i get
fatal error: wj200_vfd.h: No such file or directory
it seems .h file is not copied to the temp directory where the wj200_vfd.c file is generated
as a workaround i added it manually to the gcc cmd line generated using halcompile --compile wj200_vfd.comp
but is there a way to properly add missing .h file either by having the missing file copied to the temp directory or to force
halcompile --compile not to use a temp dir or something else ?
thanks
OR
i'm working on userspace wj200_vfd
i've added a local include file wj200_vfd.h in the declaration section of the comp file
and halcompile --preprocess works fine and generate .c file to the local folder
when invoking
halcompile --compile wj200_vfd.comp
i get
fatal error: wj200_vfd.h: No such file or directory
it seems .h file is not copied to the temp directory where the wj200_vfd.c file is generated
as a workaround i added it manually to the gcc cmd line generated using halcompile --compile wj200_vfd.comp
but is there a way to properly add missing .h file either by having the missing file copied to the temp directory or to force
halcompile --compile not to use a temp dir or something else ?
thanks
OR
Please Log in or Create an account to join the conversation.
- andypugh
- Offline
- Moderator
Less
More
- Posts: 23560
- Thank you received: 4858
24 Oct 2018 13:09 #119334
by andypugh
Replied by andypugh on topic halcompile missing additionnal include file
An inelegant workaround is to give the include directive a relative path from the temp file location.
github.com/LinuxCNC/linuxcnc/blob/master...s/mesa_uart.comp#L38
For an example.
I agree that it would be better if halcompile made a copy of the include file in the temp file location. (or modified the path)
github.com/LinuxCNC/linuxcnc/blob/master...s/mesa_uart.comp#L38
For an example.
I agree that it would be better if halcompile made a copy of the include file in the temp file location. (or modified the path)
Please Log in or Create an account to join the conversation.
- oro06
- Offline
- New Member
Less
More
- Posts: 7
- Thank you received: 0
24 Oct 2018 14:43 #119338
by oro06
Replied by oro06 on topic halcompile missing additionnal include file
thanks for the update
for the record, there is also a an hidden option "extra_compile_args"
not in the doc here linuxcnc.org/docs/html/hal/comp.html#_options
but looking at the source here
github.com/LinuxCNC/linuxcnc/blob/master...l/utils/halcompile.g
line 715
i just tried to add this in the declaration of the .comp file
option extra_compile_args "-I/home/linuxcnc/dev/linuxcnc-oro06.git/src/hal/user_comps/wj200_vfd/";
and that did the trick but it's not a relative path, not sure it's nice for a
future pull request to come !
for the record, there is also a an hidden option "extra_compile_args"
not in the doc here linuxcnc.org/docs/html/hal/comp.html#_options
but looking at the source here
github.com/LinuxCNC/linuxcnc/blob/master...l/utils/halcompile.g
line 715
i just tried to add this in the declaration of the .comp file
option extra_compile_args "-I/home/linuxcnc/dev/linuxcnc-oro06.git/src/hal/user_comps/wj200_vfd/";
and that did the trick but it's not a relative path, not sure it's nice for a
future pull request to come !
Please Log in or Create an account to join the conversation.
- oro06
- Offline
- New Member
Less
More
- Posts: 7
- Thank you received: 0
24 Oct 2018 14:54 #119340
by oro06
Replied by oro06 on topic halcompile missing additionnal include file
still this was usefull with modbus.h which is not in the path
option extra_compile_args "-I/home/linuxcnc/dev/linuxcnc-oro06.git/src/hal/user_comps/wj200_vfd;-I/usr/include/modbus";
option extra_compile_args "-I/home/linuxcnc/dev/linuxcnc-oro06.git/src/hal/user_comps/wj200_vfd;-I/usr/include/modbus";
Please Log in or Create an account to join the conversation.
- oro06
- Offline
- New Member
Less
More
- Posts: 7
- Thank you received: 0
24 Oct 2018 15:05 #119341
by oro06
Replied by oro06 on topic halcompile missing additionnal include file
typo
option extra_compile_args "-I/home/linuxcnc/dev/linuxcnc-oro06.git/src/hal/user_comps/wj200_vfd -I/usr/include/modbus -std=c99";
option extra_compile_args "-I/home/linuxcnc/dev/linuxcnc-oro06.git/src/hal/user_comps/wj200_vfd -I/usr/include/modbus -std=c99";
Please Log in or Create an account to join the conversation.
- andypugh
- Offline
- Moderator
Less
More
- Posts: 23560
- Thank you received: 4858
26 Oct 2018 19:18 #119477
by andypugh
Replied by andypugh on topic halcompile missing additionnal include file
I have looked at this some more, and I am not actually sure what the problem is. I made a test .comp that required a .h file, and it compiled fine with both 2.7 and master when placed in my root folder. (ie, out-of-tree).
Please Log in or Create an account to join the conversation.
- Grotius
- Offline
- Platinum Member
Less
More
- Posts: 2234
- Thank you received: 1949
27 Oct 2018 04:21 - 27 Oct 2018 04:24 #119500
by Grotius
Replied by Grotius on topic halcompile missing additionnal include file
Hi,
It can be Orinaudo has used the include statement not the right way.
In Andy's example, in my case nothing will be found with : include "../../../hal/drivers/mesa-hostmot2/hostmot2.h";
Even if the file exist's.
So i suspect mr. Orinaudo can have typed a wrong include argument for a component .comp file to halcompile.
For example, this works, it find's it :
#include "/opt/etherlab/include/special.h"
( if the file exist's )
It can be Orinaudo has used the include statement not the right way.
In Andy's example, in my case nothing will be found with : include "../../../hal/drivers/mesa-hostmot2/hostmot2.h";
Even if the file exist's.
So i suspect mr. Orinaudo can have typed a wrong include argument for a component .comp file to halcompile.
For example, this works, it find's it :
#include "/opt/etherlab/include/special.h"
( if the file exist's )
Last edit: 27 Oct 2018 04:24 by Grotius.
Please Log in or Create an account to join the conversation.
- oro06
- Offline
- New Member
Less
More
- Posts: 7
- Thank you received: 0
27 Oct 2018 08:53 #119503
by oro06
Replied by oro06 on topic halcompile missing additionnal include file
hi,
sorry to my unclear question,
but the interest was also in not polluting .comp sources
with pathfilename dependant on where code source tree is located
as a concrete example, of out-of-tree compiling component, with the current master
, speaking of the wj200_vfd.comp located (in my case)
~/linuxcnc/dev/linuxcnc/src/hal/user_comps/wj200_vfd
then to fix this, a possibility is to add in the comp file, in the declaration section (before the ";;")this should succeed, i find it clean because modbus is a std lib located in a std place
now if one want to use an additionnal include file wj200_vfd.h, located in the same directory as the comp
updating the corresponding .comp file like this
then compiling...replacingbywill compile fine on my system,
but this will not compile properly on another system located elsewhere in the fs
this is why i proposed
github.com/LinuxCNC/linuxcnc/pull/515
sorry to my unclear question,
but the interest was also in not polluting .comp sources
with pathfilename dependant on where code source tree is located
as a concrete example, of out-of-tree compiling component, with the current master
, speaking of the wj200_vfd.comp located (in my case)
~/linuxcnc/dev/linuxcnc/src/hal/user_comps/wj200_vfd
cd ~/linuxcnc/dev/linuxcnc/src/hal/user_comps/wj200_vfd
halcompile --compile wj200_vfd.comp
wj200_vfd.comp:43:19: fatal error: modbus.h: No such file or directory
compilation terminated.
make: *** [wj200_vfd] Error 1
option extra_compile_args "-I/usr/include/modbus -std=c99";
option extra_link_args "-lmodbus";
now if one want to use an additionnal include file wj200_vfd.h, located in the same directory as the comp
updating the corresponding .comp file like this
...
option userspace;
option userinit yes;
include <wj200_vfd.h>;
option extra_compile_args "-I/usr/include/modbus -std=c99";
option extra_link_args "-lmodbus";
license "GPLv2 or greater";
;;
halcompile --compile wj200_vfd.comp
/tmp/tmp2r2Nhr/wj200_vfd.c:13:23: fatal error: wj200_vfd.h: No such file or directory
include <wj200_vfd.h>;
include "~/linuxcnc/dev/linuxcnc/src/hal/user_comps/wj200_vfd/wj200_vfd.h";
but this will not compile properly on another system located elsewhere in the fs
this is why i proposed
github.com/LinuxCNC/linuxcnc/pull/515
Please Log in or Create an account to join the conversation.
Time to create page: 0.139 seconds