# Eclipse IDE on Windows

**URL:** <https://community.particle.io/t/eclipse-ide-on-windows/2380>\
**Category:** Getting Started\
**Created:** [January 25, 2014, 5:01pm UTC](https://community.particle.io/t/eclipse-ide-on-windows/2380 "2014-01-25T17:01:26Z")\
**Posts on this page:** 20\
**Page:** 1

<div class="post-metadata">

**Author:** ![rlogiacco](https://sea2.discourse-cdn.com/flex026/user_avatar/community.particle.io/rlogiacco/32/20725_2.png) [@rlogiacco](https://community.particle.io/u/rlogiacco)\
**Post date:** [January 25, 2014, 5:01pm UTC](https://community.particle.io/t/eclipse-ide-on-windows/2380/1 "2014-01-25T17:01:26Z")

</div>

Hi, I’ve posted an [article on my blog](http://wp.me/p2NOkG-6M) describing the procedure to have the Eclipse CPP environment set up on a Windows machine, but I’m stuck with some weird errors reported within Eclipse but not blocking the build process.

When I open the `application.cpp` file I see errors on `pinMode`, `digitalRead`, `digitalWrite`, `analogRead` and `analogWrite` functions: for them all the message is something like

```
Invalid arguments 'Candidates are: void pinMode(?, enum PinMode)'

```

If I open `spark_wiring.h`, as an example, I get errors on the basic types, like

```
Type 'int32_t' could not be resolved

```

I’m pretty sure I’m missing something very simple here, but I’m new at Eclipse CPP, your help is very welcome.

---

<div class="post-metadata">

**Author:** ![zach](https://sea2.discourse-cdn.com/flex026/user_avatar/community.particle.io/zach/32/20714_2.png) [@zach](https://community.particle.io/u/zach)\
**Post date:** [January 26, 2014, 9:16pm UTC](https://community.particle.io/t/eclipse-ide-on-windows/2380/2 "2014-01-26T21:16:10Z")

</div>

Hi @rlogiacco - I’m not particularly familiar with Eclipse so I don’t have great suggestions here, but it does seem like there’s some issue in pulling in dependencies. Are there settings for your project where you provide a list of files to be included? If so, perhaps that list is not currently including everything from all three firmware repositories?

---

<div class="post-metadata">

**Author:** ![zachary](https://sea2.discourse-cdn.com/flex026/user_avatar/community.particle.io/zachary/32/20717_2.png) [@zachary](https://community.particle.io/u/zachary)\
**Post date:** [January 27, 2014, 1:03am UTC](https://community.particle.io/t/eclipse-ide-on-windows/2380/3 "2014-01-27T01:03:37Z")

</div>

The stdint.h types are defined in the GNU ARM toolchain. Are you using [the toolchain from launchpad.net](https://launchpad.net/gcc-arm-embedded) recommended in [the core-firmware README](https://github.com/spark/core-firmware)?

I know @satishgn works in Eclipse on Windows at least some of the time. Can you give any guidance here Satish?

---

<div class="post-metadata">

**Author:** ![satishgn](https://sea2.discourse-cdn.com/flex026/user_avatar/community.particle.io/satishgn/32/20740_2.png) [@satishgn](https://community.particle.io/u/satishgn)\
**Post date:** [January 27, 2014, 4:43am UTC](https://community.particle.io/t/eclipse-ide-on-windows/2380/4 "2014-01-27T04:43:44Z")

</div>

@rlogiacco, can you try this:

Select the “core-firmware” project in Project-Explorer then =\> “Window” =\> “Preferences” =\> “C/C++” =\> “Indexer” =\> Deselect and Select “Enable indexer” =\> “Apply”

---

<div class="post-metadata">

**Author:** ![rlogiacco](https://sea2.discourse-cdn.com/flex026/user_avatar/community.particle.io/rlogiacco/32/20725_2.png) [@rlogiacco](https://community.particle.io/u/rlogiacco)\
**Post date:** [January 27, 2014, 10:33am UTC](https://community.particle.io/t/eclipse-ide-on-windows/2380/5 "2014-01-27T10:33:41Z")

</div>

@satishgn that re-index didn’t work: the indexer run for a little less than a minute but no joy. Is it possible I’ve to instruct somehow Eclipse to add some resources to the index?

Please find a screenshot of my core-firmware clone within Eclipse ![](https://sea2.discourse-cdn.com/flex026/uploads/particle/413/ce86ec261a74f3f1.png)

---

<div class="post-metadata">

**Author:** ![seulater](https://sea2.discourse-cdn.com/flex026/user_avatar/community.particle.io/seulater/32/280_2.png) [@seulater](https://community.particle.io/u/seulater)\
**Post date:** [January 27, 2014, 4:23pm UTC](https://community.particle.io/t/eclipse-ide-on-windows/2380/6 "2014-01-27T16:23:12Z")

</div>

rlogiacco posted a link in his blog for a better understanding for a windows setup. I have used the information for there and here to set up my environment. I also added the following lines to the makefile as per his blog.

RM = “C:\Program Files (x86)\Git\bin\rm.exe” -f  
MKDIR = “C:\Program Files (x86)\Git\bin\mkdir.exe” -p

Yet when i go to the core-firmware/build folder and type make i get the following:

C:\Spark\core-firmware\build\>make  
Building core-common-lib  
Building file: …/CC3000\_Host\_Driver/cc3000\_common.c  
Invoking: ARM GCC C Compiler  
"C:\Program Files (x86)\Git\bin\mkdir.exe" -p obj/CC3000\_Host\_Driver/  
process\_begin: CreateProcess(NULL, “C:\Program Files (x86)\Git\bin\mkdir.exe” -p obj/CC3000\_Host\_Dri  
ver/, …) failed.  
make (e=2): The system cannot find the file specified.  
make[1]: \*\*\* [obj/CC3000\_Host\_Driver/cc3000\_common.o] Error 2  
make: \*\*\* [check\_external\_deps] Error 2

C:\Spark\core-firmware\build\>

---

<div class="post-metadata">

**Author:** ![seulater](https://sea2.discourse-cdn.com/flex026/user_avatar/community.particle.io/seulater/32/280_2.png) [@seulater](https://community.particle.io/u/seulater)\
**Post date:** [January 27, 2014, 10:39pm UTC](https://community.particle.io/t/eclipse-ide-on-windows/2380/7 "2014-01-27T22:39:35Z")

</div>

I found the problem. On my system Win7 -64bit. It did not like the paths. "C:\Program Files (x86)"  
I moved the following installed folders into a new folder i created "C:\Building"  
GnuWin32  
GNU Tools ARM Embedded  
Git  
dfu-util-0.6

Now i was able to run make and everything worked just fine!!!  
I also was able to use the make files without modifying them for the path commands.  
hope it helps someone.

---

<div class="post-metadata">

**Author:** ![rlogiacco](https://sea2.discourse-cdn.com/flex026/user_avatar/community.particle.io/rlogiacco/32/20725_2.png) [@rlogiacco](https://community.particle.io/u/rlogiacco)\
**Post date:** [January 28, 2014, 2:45pm UTC](https://community.particle.io/t/eclipse-ide-on-windows/2380/8 "2014-01-28T14:45:52Z")

</div>

@seulater actually encountered your same issue and solved it, but I forgot to update the blog post: thanks for the reminder!

@satishgn anything else i can try to fix the compilation problems?

---

<div class="post-metadata">

**Author:** ![chrisb2](https://sea2.discourse-cdn.com/flex026/user_avatar/community.particle.io/chrisb2/32/20743_2.png) [@chrisb2](https://community.particle.io/u/chrisb2)\
**Post date:** [February 1, 2014, 10:35am UTC](https://community.particle.io/t/eclipse-ide-on-windows/2380/9 "2014-02-01T10:35:54Z")

</div>

I just followed your instructions on Eclipse Juno, the only thing I had to do to get rid of all errors and warning was to set:

Properties -\> C++ Build -\> Discovery Option -\> GCC C++ Compiler -\> Compiler invocation command  
to  
_ **arm-none-eabi-g++** _

and

Properties -\> C++ Build -\> Discovery Option -\> GCC C Compiler -\> Compiler invocation command  
to  
_ **arm-none-eabi-gcc** _

I also added an external run configuration for dfu-util, so that I no longer need a DOS command window:  
 ![](https://sea2.discourse-cdn.com/flex026/uploads/particle/455/806a6aa613114aa7.jpg)

---

<div class="post-metadata">

**Author:** ![seulater](https://sea2.discourse-cdn.com/flex026/user_avatar/community.particle.io/seulater/32/280_2.png) [@seulater](https://community.particle.io/u/seulater)\
**Post date:** [February 3, 2014, 6:10pm UTC](https://community.particle.io/t/eclipse-ide-on-windows/2380/10 "2014-02-03T18:10:38Z")

</div>

I like Eclipse better than Netbeans @rlogiacco, .according to your blog, you mention “2) Select GNU Autotools as Toolchain” yet i do not have this option.

@chrisb2, when you mention “Properties -\> C++ Build -\> Discovery Option -\> GCC C++ Compiler -\> Compiler invocation command” i dont have this either. Is there some plugin that i am missing ?  
 ![](https://sea2.discourse-cdn.com/flex026/uploads/particle/482/79009d6ff4f2ba3c.jpg)

Maybe when you have time on here or your blog you can snap some screenshots of all the pertinent settings so we can see them.

---

<div class="post-metadata">

**Author:** ![chrisb2](https://sea2.discourse-cdn.com/flex026/user_avatar/community.particle.io/chrisb2/32/20743_2.png) [@chrisb2](https://community.particle.io/u/chrisb2)\
**Post date:** [February 4, 2014, 9:20am UTC](https://community.particle.io/t/eclipse-ide-on-windows/2380/11 "2014-02-04T09:20:48Z")

</div>

I have created a blog post which goes through the steps with screen shots, its pretty much identical to that of @rlogiacco. They key difference is I have a slightly different ARM tools location in my environment PATH.

[Howto setup Eclipse to build and flash Spark-Core firmware](http://blog.borrill.gen.nz/2014/02/howto-setup-eclipse-to-build-and-flash.html)

---

<div class="post-metadata">

**Author:** ![rlogiacco](https://sea2.discourse-cdn.com/flex026/user_avatar/community.particle.io/rlogiacco/32/20725_2.png) [@rlogiacco](https://community.particle.io/u/rlogiacco)\
**Post date:** [February 4, 2014, 10:49am UTC](https://community.particle.io/t/eclipse-ide-on-windows/2380/12 "2014-02-04T10:49:36Z")

</div>

@chrisb2 If I follow your instructions and set the PATH to point to the `arm-none-eabi\bin` subdirectory I get an error:

```
arm-none-eabi-g++ -g3 -gdwarf-2 -Os -mcpu=cortex-m3 -mthumb -I../inc -I../../core-common-lib/CMSIS/Include -I../../core-common-lib/CMSIS/Device/ST/STM32F10x/Include -I../../core-common-lib/STM32F10x_StdPeriph_Driver/inc -I../../core-common-lib/STM32_USB-FS-Device_Driver/inc -I../../core-common-lib/CC3000_Host_Driver -I../../core-common-lib/SPARK_Firmware_Driver/inc -I../../core-communication-lib/lib/tropicssl/include -I../../core-communication-lib/src -I. -ffunction-sections -Wall -fmessage-length=0 -MD -MP -MF core-firmware.elf.d -DUSE_STDPERIPH_DRIVER -DSTM32F10X_MD -DDFU_BUILD_ENABLE obj/src/application.o obj/src/main.o obj/src/newlib_stubs.o obj/src/spark_utilities.o obj/src/spark_wiring.o obj/src/spark_wiring_i2c.o obj/src/spark_wiring_interrupts.o obj/src/spark_wiring_ipaddress.o obj/src/spark_wiring_network.o obj/src/spark_wiring_print.o obj/src/spark_wiring_servo.o obj/src/spark_wiring_spi.o obj/src/spark_wiring_stream.o obj/src/spark_wiring_string.o obj/src/spark_wiring_tcpclient.o obj/src/spark_wiring_tcpserver.o obj/src/spark_wiring_udp.o obj/src/spark_wiring_usartserial.o obj/src/spark_wiring_usbserial.o obj/src/spark_wlan.o obj/src/stm32_it.o obj/src/usb_desc.o obj/src/usb_endp.o obj/src/usb_istr.o obj/src/usb_prop.o obj/src/wifi_credentials_reader.o obj/startup/startup_stm32f10x_md.o --output core-firmware.elf -T../linker/linker_stm32f10x_md_dfu.ld -nostartfiles -Xlinker --gc-sections -L../../core-common-lib/build -lcore-common-lib -L../../core-communication-lib/build -lcore-communication-lib -Wl,-Map,core-firmware.map
process_begin: CreateProcess(NULL, arm-none-eabi-g++ -g3 -gdwarf-2 -Os -mcpu=cortex-m3 -mthumb -I../inc -I../../core-common-lib/CMSIS/Include -I../../core-common-lib/CMSIS/Device/ST/STM32F10x/Include -I../../core-common-lib/STM32F10x_StdPeriph_Driver/inc -I../../core-common-lib/STM32_USB-FS-Device_Driver/inc -I../../core-common-lib/CC3000_Host_Driver -I../../core-common-lib/SPARK_Firmware_Driver/inc -I../../core-communication-lib/lib/tropicssl/include -I../../core-communication-lib/src -I. -ffunction-sections -Wall -fmessage-length=0 -MD -MP -MF core-firmware.elf.d -DUSE_STDPERIPH_DRIVER -DSTM32F10X_MD -DDFU_BUILD_ENABLE obj/src/application.o obj/src/main.o obj/src/newlib_stubs.o obj/src/spark_utilities.o obj/src/spark_wiring.o obj/src/spark_wiring_i2c.o obj/src/spark_wiring_interrupts.o obj/src/spark_wiring_ipaddress.o obj/src/spark_wiring_network.o obj/src/spark_wiring_print.o obj/src/spark_wiring_servo.o obj/src/spark_wiring_spi.o obj/src/spark_wiring_stream.o obj/src/spark_wiring_string.o obj/src/spark_wiring_tcpclient.o obj/src/spark_wiring_tcpserver.o obj/src/spark_wiring_udp.o obj/src/spark_wiring_usartserial.o obj/src/spark_wiring_usbserial.o obj/src/spark_wlan.o obj/src/stm32_it.o obj/src/usb_desc.o obj/src/usb_endp.o obj/src/usb_istr.o obj/src/usb_prop.o obj/src/wifi_credentials_reader.o obj/startup/startup_stm32f10x_md.o --output core-firmware.elf -T../linker/linker_stm32f10x_md_dfu.ld -nostartfiles -Xlinker --gc-sections -L../../core-common-lib/build -lcore-common-lib -L../../core-communication-lib/build -lcore-communication-lib -Wl,-Map,core-firmware.map, ...) failed.
make (e=2): Impossibile trovare il file specificato.

```

The message, in italian, clearly states a `file not found` error and it refers to the `arm-none-eabi-g++` which is available under `C:\Apps\spark\GNU Tools ARM Embedded\4.8 2013q4\bin` but not under `C:\Apps\spark\GNU Tools ARM Embedded\4.8 2013q4\arm-none-eabi\bin`: is it possible you have two entries in your path environment?

@seulater have you installed the GNU ARM Toolchain? I’m not sure, but I believe Eclipse shows that entry if it detects the toolchain on the system… I did nothing special to have it shown.

@chrisb2 I don’t have the _Properties -\> C++ Build -\> Discovery Option -\> GCC C++ Compiler -\> Compiler invocation command_ option either, I’m using Eclipse Kepler

---

<div class="post-metadata">

**Author:** ![rlogiacco](https://sea2.discourse-cdn.com/flex026/user_avatar/community.particle.io/rlogiacco/32/20725_2.png) [@rlogiacco](https://community.particle.io/u/rlogiacco)\
**Post date:** [February 4, 2014, 11:05am UTC](https://community.particle.io/t/eclipse-ide-on-windows/2380/13 "2014-02-04T11:05:39Z")

</div>

I’ve nailed down my error to the very basic types, all other errors are a consequence of those `Type uint16_t could not be resolved`.

Please note the compilation process works perfectly and I’m able to upload the firmware to the :spark:, the issue is limited to the Eclipse editor only.

The issue is related to all the default includes, all of the following ones are failing:

```
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <ctype.h>
#include <stdint.h>

```

**UPDATE** : I tried to use a completely fresh Eclipse and Toolchain installation without any success. Whenever I open up the `application.cpp` file in the Eclipse editor I get those errors.

**UPDATE #2** : I fixed this by manual adding `arm-none-eabi/include` to the C/C++ General \> Paths and Symbols \> Includes \> GNU C++ includes list… What surprises me is it seems you guys don’t need this step. Am I doing something wrong here?

---

<div class="post-metadata">

**Author:** ![seulater](https://sea2.discourse-cdn.com/flex026/user_avatar/community.particle.io/seulater/32/280_2.png) [@seulater](https://community.particle.io/u/seulater)\
**Post date:** [February 4, 2014, 11:27am UTC](https://community.particle.io/t/eclipse-ide-on-windows/2380/14 "2014-02-04T11:27:00Z")

</div>

@chrisb2 , Thanks for the screen shots. I too was at the same point with the settings when i received an update to this post. Even though everything compiles ok the indexer is still messed up. For some reason i cannot get eclipse to see all the includes.

---

<div class="post-metadata">

**Author:** ![rlogiacco](https://sea2.discourse-cdn.com/flex026/user_avatar/community.particle.io/rlogiacco/32/20725_2.png) [@rlogiacco](https://community.particle.io/u/rlogiacco)\
**Post date:** [February 4, 2014, 1:23pm UTC](https://community.particle.io/t/eclipse-ide-on-windows/2380/15 "2014-02-04T13:23:36Z")

</div>

@seulater does my fix work for you?  
If you need more instructions on how to apply it I’ve updated the blog post: please refer to step 5 at the end of [http://rlogiacco.wordpress.com/2014/01/25/the-sparkcore-makers-meet-the-cloud/](http://rlogiacco.wordpress.com/2014/01/25/the-sparkcore-makers-meet-the-cloud/) ‎

---

<div class="post-metadata">

**Author:** ![seulater](https://sea2.discourse-cdn.com/flex026/user_avatar/community.particle.io/seulater/32/280_2.png) [@seulater](https://community.particle.io/u/seulater)\
**Post date:** [February 4, 2014, 5:50pm UTC](https://community.particle.io/t/eclipse-ide-on-windows/2380/16 "2014-02-04T17:50:56Z")

</div>

@rlogiacco, It seems to be all working now.  
Dam Windows. I have tried all these steps several times, and many other different combinations that have worked well with other things I have used. Nothing worked right. I decided this morning to revert my PC back to a virgin image and try again. Now everything is working properly.  
The only thing different I did was when creating a new project and selecting external source files was that I pointed to the root of the sources so I could see all the 3 folders and their files.

Thanks guys!

---

<div class="post-metadata">

**Author:** ![rlogiacco](https://sea2.discourse-cdn.com/flex026/user_avatar/community.particle.io/rlogiacco/32/20725_2.png) [@rlogiacco](https://community.particle.io/u/rlogiacco)\
**Post date:** [February 4, 2014, 6:00pm UTC](https://community.particle.io/t/eclipse-ide-on-windows/2380/17 "2014-02-04T18:00:43Z")

</div>

@seulater just to double check, did you manually add the `arm-none-eabi/include` folder to the project Paths and Symbols (step 5 on my blog post)?  
If you didn’t I wish to verify your installation steps against mine because I had to do that in order to fix my Eclipse editor warnings.

@chrisb2 I believe you didn’t have to manually add that folder: can you please check if it is there nevertheless? I’m considering the possibility something failed during import…

Does anybody else need that manual step?

Is it ok to have it there or am I including the wrong folder?

**UPDATE** I now have other errors in deeper includes, like in `spark_-wiring.cpp`

```
Multiple markers at line 57
	- Symbol 'GPIO_Pin_7' could not be resolved
	- Symbol 'TIM_Channel_2' could not be resolved

```

I believe the manual path addition is not going to solve this so I’m going for a more radical solution…

---

<div class="post-metadata">

**Author:** ![seulater](https://sea2.discourse-cdn.com/flex026/user_avatar/community.particle.io/seulater/32/280_2.png) [@seulater](https://community.particle.io/u/seulater)\
**Post date:** [February 4, 2014, 6:24pm UTC](https://community.particle.io/t/eclipse-ide-on-windows/2380/18 "2014-02-04T18:24:01Z")

</div>

@rlogiacco, yes, I added C:\Spark\GNU Tools ARM Embedded\4.8 2013q4\arm-none-eabi\include.  
One thing I noticed is that if you also add that to GNU C as well it messes up the indexer. so only add it to C++.  
I also tried removing it and it does have an affect on the indexer.  
Pulling in my old code to give it a run for the money, and now the indexer complains about this call.

SPI.setClockDivider(SPI\_CLOCK\_DIV8);

Description Resource Path Location Type  
Symbol ‘SPI\_BaudRatePrescaler\_8’ could not be resolved application.cpp /Test/core-firmware/src line 44 Semantic Error

So close I can taste it, but still not working 100%

---

<div class="post-metadata">

**Author:** ![ScruffR](https://sea2.discourse-cdn.com/flex026/user_avatar/community.particle.io/scruffr/32/6952_2.png) [@ScruffR](https://community.particle.io/u/ScruffR)\
**Post date:** [February 6, 2014, 6:06pm UTC](https://community.particle.io/t/eclipse-ide-on-windows/2380/19 "2014-02-06T18:06:35Z")

</div>

Thanks to everybody in this thread for the contributions, that helped me a great deal to have Eclipse setup for :spark: Core dev.

The only minor problem I seem to encounter is that I get some warnings, I don’t understand and can’t get rid of

```
make all 
makefile:154: warning: overriding commands for target `obj%.o'
makefile:146: warning: ignoring old commands for target `obj%.o'
makefile:163: warning: overriding commands for target `obj%.o'
makefile:154: warning: ignoring old commands for target `obj%.o'
Building core-common-lib
makefile:95: warning: overriding commands for target `obj%.o'
makefile:86: warning: ignoring old commands for target `obj%.o'
make[1]: Nothing to be done for `all'.
ECHO is off.
Building core-communication-lib
makefile:97: warning: overriding commands for target `obj%.o'
makefile:88: warning: ignoring old commands for target `obj%.o'
make[1]: Nothing to be done for `all'.
ECHO is off.

```

I have changed the forward slashes in the makefile to backslashes and done the RM/MKDIR substitutes, and now I get these warnings.  
It seems as if there was the path separator “” missing between “obj” and “%.o”, but why?  
Are these of any interest? Has anybody an idea where they come from and how to get rid of them?

Please 😊 !

---

<div class="post-metadata">

**Author:** ![rlogiacco](https://sea2.discourse-cdn.com/flex026/user_avatar/community.particle.io/rlogiacco/32/20725_2.png) [@rlogiacco](https://community.particle.io/u/rlogiacco)\
**Post date:** [February 7, 2014, 12:00am UTC](https://community.particle.io/t/eclipse-ide-on-windows/2380/20 "2014-02-07T00:00:59Z")

</div>

My best advice is to revert your changes to the makefiles and add `<path-to-git-installation>\bin` to your **PATH** env variable: let me know if that helps.

I believe once we have a fully reproducible instruction set it will be worth to update the official :spark:IDE installation instructions.

@ScruffR did you have to add the `arm-none-eabi/include` folder to the Path and Symbols? Have you encounter the additional missing symbols warnings I reported? I’m trying to understand if that’s relative to my environment or if it’s generic.

@satishgn have had to add anything to the Path and Symbols to have Eclipse properly parse all the includes? If you did it would greatly help if you could share your `core-firmare` settings 😄

[Next page](https://community.particle.io/t/eclipse-ide-on-windows/2380.md?page=2)
