# Forum: ARM programming with GCC/GNU tools Networking Eclipse projects

 Author: Alan Rouse (Company: XC Comms Ltd) (rousey) Posted on: 2011-05-10 12:20

Rate this post
 0 ▲ useful ▼ not useful
My project involves multiple modules that communicate with each other.
It is very helpful to be able to run two instances of the project on two
PC's connected to different targets, but sharing the same source code so
changes made to debug one of the targets are automatically included in
the other one.

I am developing it using Eclipse, GCC and GNU. I have built a project
named DISPLAY on a PC that has the network name Server.  Within the
project folder I have two sub-folders named 'Source' and 'Include'
containing .c and .h files respectively.  There is an additional file in
'Include' named stm32rom.ld which contains the processor characteristics
needed by the linker.  There is a third folder named 'obj' for the

The makefile on Server invokes the compiler using commands of the form
"gcc -c -I../DISPLAY/Include ../DISPLAY/Source/DisplayILI9325.c -o
obj/DisplayILI9325.o".  The linker uses a command of the form "gcc
-I../DISPLAY/Include obj/DisplayILI9325.o
-T../DISPLAY/Include/stm32rom.ld obj/DISPLAY.elf" (note that other
option switches have been omitted for simplicity).  This project

I can access Server from another PC networked to this, named T42. I have
copied the project folder to a folder on T42, excluding the 'Source' and
'Header' sub-folders. I then created new 'Source' and 'Include' folders
that access the relevant folders on Server. (For an explanation of how
to do this, see below *).

I modified the compiler commands in makefile on the T42 to "gcc -c
-I//Server/S/Software/DISPLAY/Include
//Server/S/Software/DISPLAY/Source/DisplayILI9325.c -o
obj/DisplayILI9325.o", and the linker commands to "gcc
-I//Server/S/Software/DISPLAY/Include obj/DisplayILI9325.o
-T//Server/S/Software/DISPLAY/Include/stm32rom.ld obj/DISPLAY.elf".

When I build the project on T42 it correctly compiles each module, but
fails to link with the error message "cannot open linker script file
//Server/S/Software/DISPLAY/Include/stm32rom.ld: No such file or
directory".

I can't understand this, since the -T command format is exactly the same
as the -I and compiler command formats, which are executed correctly.
The makefile is identical to that used on Server, except for the folder
definitions.

Any ideas why the compiler can access networked files, and the linker
can access networked -I files, but can't access a networked -T linker
script file?

*  To configure an Eclipse project to access networked folders:
In the Eclipse 'Project Exp' window right-click on the project folder
and select New Folder. In the dialog window click '<< Advanced' then
enter the network address of the required folder.

• $formula (LaTeX syntax)$