Go Down

Topic: Eclipse linux Jantje's plugin (Read 901 times) previous topic - next topic


I am trying to work on a moderately heavyweight project using an Arduino mega, using much of C++'s object functionality, and so I feel that I need a more heavyweight development environment than the normal IDE. I decided that the least problematic route looked like Eclipse.

Unfortunately I'm using Linux AMD64 (Mint 14, which is basically Ubuntu under the hood) and I installed Eclipse via Apt-Get, so ended up with the 64 bit version contrary to the official recommendations.

I very quickly got it as far as to be able to create a blank project, and replicate, build and upload Blink. I feel this is pretty good, and despite a lot of quirks (most of which seem to be in Eclipse itself, not Jantje's fantastic plugin), I have been very pleased with the progress.

That is until I try to access any of the Libraries. At that point Eclipse gets confused and refuses to accept they exist. This is likely because I haven't configured it right, but I don't know how to. 

The message comes out as "fatal error: Wire.h: No such file or directory"

I doesn't seem to matter what I set the "Private Libraries" value to, it always does the same.

If anyone has experience with this, could they please advise me as to what I should be doing to get the libraries recognised by eclipse.

I'm using Eclipse 3.8 Build id: I20120502-2000
I'm using   Arduino eclipse extensions   1.2.4   it.baeyens.arduino.feature.feature.group   jan Baeyens. Interestingly there were 2 versions available from there, I went for the larger numbered, but "uncatgorised" one.
arduino IDE 1.0.1 is installed.
at one point I couldn't find the Arduino IDE directory when required during plugin installation as Apt-get hides it quite well, so I downloaded (1.0.5) and attempted to use it's files for that purpose, I think I've removed all of those references though now.


Are you sure Eclipse is pointing to the right directory structure
There might be more than one place

I haven't got Eclipse at work so I cant check.

If blink works, try to include the wire.h and work from there


Jun 01, 2013, 02:09 pm Last Edit: Jun 01, 2013, 03:21 pm by thingomy Reason: 1

Are you sure Eclipse is pointing to the right directory structure
There might be more than one place

I'm fairly sure I have NOT got Eclipse pointing at the correct directory structure, but with no working reference environment and no documentation of the specifics of that stuff anywhere I can find on-line, I don't know what I need to change or how to change it.

Not having experience of basic eclipse either I don't have the background to be able to work it out.

If blink works, try to include the wire.h and work from there

What I did to generate the above error was exactly that, make a blank project (with the separate .h file and all that come as standard), copy in all of the actual code from blink (this compiles, uploads and runs) then add the line

#include <Wire.h>

It immediately flags up the problem in the IDE, and fails to compile properly saying it can't find the file.

Is there a way I can short circuit the whole directories problem, and just put symlinks in my project folder? Do I need symlinks to individual c files, or do I need symlinks to a folder for each lib, or do I need a symlink to a whole libraries folder? where should I put the the symlink(s): in the root of the project, or in a folder in the project.

Which libraries/files do I need to worry about other than the obvious ones I actually want to use myself? I gather Wprogram.h that some references say are essencial is no longer required as of 1.0, but arduino.h is? I can't find an arduino.h file, and I don't know precisely what it does. Have I got that right?

Interestingly    Serial.begin(9600); and     Serial.print("Hi there...");  succeed without problem.

UPDATE: I have got the LiquidCrystal library working, using a symlink in the project folder to the LiquidCrystal library folder. It only works if referenced like:

#include <LiquidCrystal/LiquidCrystal.h>

trying the same with Wire doesn't work, because it has it's own utility stuff called twi.h, and the internal include doesn't work.

I believe that the problem is that the compiler isn't recursing into sub folders to look for files that are included. I don't really know how it should work though, so I'm just stabbing in the dark.


Apologies if this counts as resurrecting a dead thread, but I've not had time to look at this since my last post.

I've my program compiling, I have multiple classes in 1 directory, and everything works fine but every time I try to access anything outside my own code, it all goes wrong.

I just got the wonderful "Symbol 'std' could not be resolved". Only the simplest of single file libraries can be included, and even then only with a great deal of coaxing (see my last post). Something is quite badly wrong here, and nothing in terms of online documentation seems to give me the information I need to identify it, or fix it.

Any advice on how to proceed would be greatly appreciated.

Go Up