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 compiler and linker output files. 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 compiles and links correctly. 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 select 'Link to alternate location (Linked Folder)'. In the box below enter the network address of the required folder.
Please log in before posting. Registration is free and takes only a minute.
Existing account
Do you have a Google/GoogleMail account? No registration required!
Log in with Google account
Log in with Google account
No account? Register here.