<div dir="ltr"><div><div><div><div>Dear GROMACS developers,<br><br></div>I am writing code in C utilizing the GROMACS 5.1.2 library. The purpose of the code is to read the binary data stored in GROMACS&#39; XTC trajectory files into C data types for further analysis / manipulation of the data.<br><br></div><div>*NOTE*: In case this would be important information, I followed the <a href="http://manual.gromacs.org/documentation/5.1.2/install-guide/index.html#quick-and-dirty-installation">&quot;Quick and Dirty Installation&quot;</a> instructions for GROMACS 5.1.2 and all commands were executed in the terminal successfully.<br></div><div><br>Back to the C code. At the very top of my file, I include &quot;/usr/local/gromacs/include/gromacs/fileio/xtcio.h&quot; so that I may access the functions I need to read the XTC trajectory files. I ran into an odd error when attempting to compile my program. <br></div><br>&quot;&quot;<br>$ gcc -o read_trajectory read_trajectory.c -L /usr/local/gromacs/lib/x86_64-linux-gnu/ -lgromacs<br>In file included from read_trajectory.c:3:0:<br>/usr/local/gromacs/include/gromacs/fileio/xtcio.h:41:35: fatal error: gromacs/fileio/gmxfio.h: No such file or directory<br> #include &quot;gromacs/fileio/gmxfio.h&quot;<br>                                   ^<br>compilation terminated.<br>&quot;&quot;<br><br></div>I can fix this error by running a bash command that searches recursively through all header files in the &quot;usr/local/gromacs/include/gromacs&quot; directory and replaces &#39;gromacs/&#39; (which only shows up in #include statements) with &#39;/usr/local/gromacs/include/gromacs/&#39; (or &#39;/path/to/your/installation/gromacs/include/gromacs/&#39;). I have included this bash command in case someone else experiences this compilation error and wants to fix it quickly:<br><br>&#39;&quot;&quot;<br></div>$ sudo find /usr/local/gromacs/include/gromacs/ -name &#39;*.h&#39; -type f -exec sed -i &#39;s:gromacs/:/usr/local/gromacs/include/gromacs/:&#39; {} \;<br><div>&quot;&quot;<br><br></div><div>Once I run this command, the program compiles successfully and I am able to run the resulting executable without any further errors.<br></div><div><br>What confuses me is that this error could have been fixed when the GROMACS header files were created in the first place - I shouldn&#39;t have to fix the relative paths where the header files are supposed to look for &amp; find the other GROMACS header files. From what I can tell (I read the <a href="http://manual.gromacs.org/documentation/5.1.2/dev-manual/includestyle.html">#include directives</a>), every header file is contained within the &quot;/usr/local/gromacs/include/gromacs/&quot; directory (or, more generally, &quot;/path/to/your/installation/gromacs/include/gromacs/&quot;). Within that directory there are modular directories that store related headers, like &quot;fileio/&quot;. Knowing all of this, why does an #include statement referring to a GROMACS header file in that <u>same</u> directory say &quot;gromacs/fileio/gmxfio.h&quot; - which, as a relative path, would <u>never</u> point to the right directory - instead of &quot;gmxfio.h&quot; or &quot;./gmxfio.h&quot;, which actually reflects this file hierarchy?<br><br></div><div>In the end, my question is simple: did I miss something in the documentation that informs me on how to include GROMACS headers files properly so that I don&#39;t have to change the include statements myself? Otherwise, is this a syntax bug that will be fixed in later GROMACS versions?<br><br><br></div><div>Many thanks,<br><br></div><div>Vladislav Martin<br>Research Assistant<span style="font-weight:normal"></span><br>Center for Nanobiology and Structural Biology<br></div><div>Email: <a href="mailto:martin.vl@husky.neu.edu">martin.vl@husky.neu.edu</a><br></div></div>