Hi,
I'm currently busy porting a massive project of ours from CCS 3.3 to CCS 4.2.
I'm porting the project module for module, and for the current module I get the
following compiler error:
"D:\Rapid_Mobile\projects\client-rapidm\product-wp_tc4_reference_system\make\tc4_rev06\module-hfh_interface_lib\..\..\..\source\dependencies\module-rm_s4538_arcs\s4538-protocol\s4538_node\include\..\..\interfaces\include\../../flsu_ftm/include/flsu_lsu.h", line 21: fatal error: "D:\Rapid_Mobile\projects\client-rapidm\product-wp_tc4_reference_system\make\tc4_rev06\module-hfh_interface_lib\..\..\..\source\dependencies\module-rm_s4538_arcs\s4538-protocol\s4538_node\include\..\..\interfaces\include\..\..\flsu_ftm\include\../../interfaces/include/s4538_wave_if.h" is illegal as it is longer than _MAX_PATH
1 fatal error detected in the compilation of "D:/Rapid_Mobile/projects/client-rapidm/product-wp_tc4_reference_system/source/module-wp_radio_control_manager/hfh_conn_process_radio_control_manager.cpp".
Compilation terminated.
From similar problem I found that the reason for this is because the Windows XP API
limits the path length to 260 characters, so this is partly an OS problem. However, I
cannot understand how the compiler searches for header files. I'm currently only compiling
a single source file, but because of the complexity of the project there are multiple
layers of includes, for this case it happens as follows:
I'm trying to compile "hfh_conn_process_radio_control_manager.cpp",
(the contents are not important) which includes: hfh_conn_process_s4538_arcs.h,
which in turn includes: s4538_node.h,
which in turn includes: s4538_dte_if.h,
which in turn includes: flsu_lsu.h,
which in turn includes: s4538_wave_if.h
At this point the _MAX_PATH length is reached and the compiler gives up.
What I have noticed is that the compiler appends the next header path (which
is specified in some cases in the header file, relative to its location) to the
current search path. Consequently the search path becomes longer and
longer with each nested include until it crashes. Due a few previous design
decisions/constraints I inherited , I can't simply remove the relative paths in
the header files and only specify it as an include path in the build options.
Is this behavior expected or am I doing something seriously wrong?
Does anyone perhaps have a suggestion?
Please provide as many suggestions as possible.
Thanks in advance!
Reinier