Hi,
I have no suitable background to deal with such cases on my own. I've got this soft LoRDEC, which needs gatb-core to work. When compiling it all #include statements from gatb files in c++ generate error because of relative path in them: etc.
fatal error: hdf5/hdf5.h: No such file or directory
I could change those paths manually but it seems tedious. Is there any clever way to deal with it?
Thanks
This is pretty off-topic, but you generally just want to add an appropriate
-I
option to the Makefile (or whatever else it's using).For gatb-core I downloaded binaries. I've got some options in Makefile of LoRDEC.:
Do you mean something else?
If
hdf5.h
is under$(GATB)/include/hdf5/
then that should work. If you post the gcc or cc line that produces that error then we'll be able to determine better what's wrong.Typically
-I/path/to/include/dir
goes toCPPFLAGS
(cpp=c-preprocessor, not c-plus-plus) and-std=c++0x -O3 -g
toCXXFLAGS
. Nonetheless, the naming is defined in Makefile. A lot of makefiles do not follow this convention. Another makefile-independent approach is to specifyUNIX is your friend. sed will make it easy for you. Once you determine how to exactly identify these lines, what needs to be replaced and what should take its place, a combination of find and sed can do this in a few milliseconds for you :)
This seems quite difficult (for me) as there are functional characters like
/
in paths and thissed 's/old/new/g'
won't work. Could you give me example how to do this: eg. change#include <gatb/bank/impl/BankFasta.hpp>
on#include </home/../gatb/bank/impl/BankFasta.hpp>
with sed command?Use backslash to escape meta-characters.