How to link .a lib in my hal comp ?
<google>
Hmm, it appears that you may need to do both.
For reference there is an undocumented "include" command in comp/halcompile:
git.linuxcnc.org/gitweb?p=linuxcnc.git;a...dadca732;hb=HEAD#l56
Please Log in or Create an account to join the conversation.
In fact i saw the makefile in the linuxcnc/src , but it's too complex for me (a fresher) . attached the makefile ,
That is the makefile to build Linuxcnc, nothing to do with comp.
i installed the system from live CD and linuxcnc-dev
You initially said that you had 10.04 installed with linuxcnc-dev package
but now you are saying you have the sources?
What is it exactly you are doing and are you using a RIP or the installed system?
There is huge scope for error if you try building components for a RIP without setting the environment first and thus end up building against the installed system.
If that is not the case you will need to attach the sources you are trying to compile.
I suspect they were never a .comp, thus don't even know if the file is in a format that will build a module in the first place.
regards
Please Log in or Create an account to join the conversation.
For reference there is an undocumented "include" command in comp/halcompile:
git.linuxcnc.org/gitweb?p=linuxcnc.git;a...dadca732;hb=HEAD#l56
Had not noticed that before.
However the more I think about it the less useful it becomes.
A rt module will have a very limited amount of possible includes and you can include whatever you like into a userspace comp file anyway.
Will have to file it away at the back of my head for poss future use.
regards
Please Log in or Create an account to join the conversation.
However the more I think about it the less useful it becomes.
A rt module will have a very limited amount of possible includes and you can include whatever you like into a userspace comp file anyway.
You can #include in the C-code section of a comp too, but the "include ...;" command in the comp headers can be useful when you need a variable of a type that is defined in a header.
Please Log in or Create an account to join the conversation.
You can #include in the C-code section of a comp too, but the "include ...;" command in the comp headers can be useful when you need a variable of a type that is defined in a header.
It could have its uses.
I have always sidestepped the issue in the past by generating a .c file, modifying that to include whatever is required and then compiling that.
Please Log in or Create an account to join the conversation.
- blightxdm1
- Offline
- New Member
- Posts: 7
- Thank you received: 0
In fact i saw the makefile in the linuxcnc/src , but it's too complex for me (a fresher) . attached the makefile ,
That is the makefile to build Linuxcnc, nothing to do with comp.
i installed the system from live CD and linuxcnc-dev
You initially said that you had 10.04 installed with linuxcnc-dev package
but now you are saying you have the sources?
What is it exactly you are doing and are you using a RIP or the installed system?
There is huge scope for error if you try building components for a RIP without setting the environment first and thus end up building against the installed system.
If that is not the case you will need to attach the sources you are trying to compile.
I suspect they were never a .comp, thus don't even know if the file is in a format that will build a module in the first place.
regards
Hi ArcEye , sorry made you confused .
In fact i have both system .one is from live-cd ,and another from srouces compiled . Of course in the second system ,before use comp command , i ran RIP script first . But the result are the same .What ever i can't get the respone as you show : gcc ....
the total response i got as below:
blight@blight-desktop:~/MEI$ comp --compile mei.c
make KBUILD_EXTRA_SYMBOLS=/usr/realtime-2.6.32-122-rtai/modules/linuxcnc/Module.symvers -C /usr/src/linux-headers-2.6.32-122-rtai SUBDIRS=`pwd` CC=gcc V=0 modules
make[1]: Entering directory `/usr/src/linux-headers-2.6.32-122-rtai'
CC [M] /tmp/tmplIlsZG/mei.o
In file included from /MEI/MPI/include/stdmpi.h:42,
from /tmp/tmplIlsZG/mei.c:28:
/MEI/MPI/include/path.h:175: warning: function declaration isn’t a prototype
/tmp/tmplIlsZG/mei.c: In function ‘set_timeouts’:
/tmp/tmplIlsZG/mei.c:425: warning: unused variable ‘temp’
/tmp/tmplIlsZG/mei.c: At top level:
/MEI/XMP/include/stdmei.h:825: warning: ‘MEIFilterGainTypePID’ defined but not used
/MEI/XMP/include/stdmei.h:922: warning: ‘MEIFilterGainTypePIV’ defined but not used
Building modules, stage 2.
MODPOST 1 modules
WARNING: "mpiMotionCreate" [/tmp/tmplIlsZG/mei.ko] undefined!
WARNING: "mpiAxisConfigSet" [/tmp/tmplIlsZG/mei.ko] undefined!
WARNING: "mpiMotorValidate" [/tmp/tmplIlsZG/mei.ko] undefined!
WARNING: "mpiControlInitVerify" [/tmp/tmplIlsZG/mei.ko] undefined!
WARNING: "mpiFilterValidate" [/tmp/tmplIlsZG/mei.ko] undefined!
WARNING: "mpiControlValidate" [/tmp/tmplIlsZG/mei.ko] undefined!
WARNING: "mpiAxisCommandPositionGet" [/tmp/tmplIlsZG/mei.ko] undefined!
WARNING: "mpiAxisConfigGet" [/tmp/tmplIlsZG/mei.ko] undefined!
WARNING: "mpiAxisValidate" [/tmp/tmplIlsZG/mei.ko] undefined!
WARNING: "mpiMotorConfigSet" [/tmp/tmplIlsZG/mei.ko] undefined!
WARNING: "mpiAxisCreate" [/tmp/tmplIlsZG/mei.ko] undefined!
WARNING: "mpiFilterCreate" [/tmp/tmplIlsZG/mei.ko] undefined!
WARNING: "mpiFilterConfigSet" [/tmp/tmplIlsZG/mei.ko] undefined!
WARNING: "mpiMotorCreate" [/tmp/tmplIlsZG/mei.ko] undefined!
WARNING: "mpiMotionValidate" [/tmp/tmplIlsZG/mei.ko] undefined!
WARNING: "mpiFilterConfigGet" [/tmp/tmplIlsZG/mei.ko] undefined!
WARNING: "mpiControlCreate" [/tmp/tmplIlsZG/mei.ko] undefined!
WARNING: "mpiMotorConfigGet" [/tmp/tmplIlsZG/mei.ko] undefined!
CC /tmp/tmplIlsZG/mei.mod.o
LD [M] /tmp/tmplIlsZG/mei.ko
Please Log in or Create an account to join the conversation.
You can either try to hack comp from about line 920, to include the lib you want, or attach the source and lib and I will try to build it and come up with a command line gcc script.
The previous one would work, you just need to sort out the relative paths.
I have dug out the corresponding script from my backup of 10.04
Save this as buildmod, and chmod -755 buildmod to make it executable
command will be ./buildmod mei meixmp assuming the source and lib are the same as previously given
# !/bin/bash
gcc -Os -g -I. -I/usr/realtime-2.6.32-122-rtai/include -I. -I/usr/realtime-2.6.32-122-rtai/include -D_FORTIFY_SOURCE=0 \
-mhard-float -DRTAI=3 -fno-fast-math -mieee-fp -fno-unsafe-math-optimizations -DRTAPI -D_GNU_SOURCE -Drealtime \
-D_FORTIFY_SOURCE=0 -D__MODULE__ -I/usr/include/emc2 -Wframe-larger-than=2560 -URTAPI -U__MODULE__ -DULAPI -Os \
-o $2 $2.c -Wl,-rpath,/lib -L/lib -llinuxcncini -llinuxcnchal -lnml -llinuxcnc -lposemath -l$3
This should just work so long as the .c file is in the PWD, the lib is somewhere on the lib path and any headers where they can be found too
(suggest just /usr/lib and /usr/include to start with)
regards
Please Log in or Create an account to join the conversation.
You can either try to hack comp from about line 920, to include the lib you want
Do you mean 920? the build_rt def is 660.
The best idea might be to add a "library ... ;" command to halcompile, then append that to the compile flags. Then we can see about adding it to the main builds.
Please Log in or Create an account to join the conversation.
You can either try to hack comp from about line 920, to include the lib you want
Do you mean 920? the build_rt def is 660.
The best idea might be to add a "library ... ;" command to halcompile, then append that to the compile flags. Then we can see about adding it to the main builds.
It is at 920 on the Machinekit build on this partition.
Yes, that would be the easiest way, I will pull the master this afternoon and have a look at it.
Please Log in or Create an account to join the conversation.
You can either try to hack comp from about line 920, to include the lib you want
Do you mean 920? the build_rt def is 660.
It all starts at 920 in linuxcnc too, not sure what you were viewing.
The build_rt reference prompts me however to go back to blightxdm1 and say, 'tell us exactly what you are doing and share the code'
rt builds and userspace ones are dealt with differently in comp / halcompile and we don't even know which it is.
I assumed all along that we were talking about a userspace module. The likelihood of having a staticly linked realtime library seemed remote.
However this shows we have actually been told nothing about what he is doing, save a question from which we make assumptions.
Over to you blightxdm1
Please Log in or Create an account to join the conversation.