Skip to main content

Arduino: "error: unknown type name 'class'" when compiling

It took me a while to figure out while I had this error when compiling my Arduino sketch.
My project was spread on several files I created. My class was actually defined in a header file (mb8877.h),

class mb8877 {
 ...
};
 
but some functions belonging to the class were defined in another file (mb8877.c) such as:

void mb8877::decode_command() {
 ...
}

That was my mistake!

The rule is: if your define functions belonging to a class outside the header file, the file declaring them should bear a .cpp extension.
Simply renaming mb8877.c to mb8877.cpp cleared the error.

Comments

Popular posts from this blog

Drive replacement for Fostex DMT8-vl

The IDE hard drive on my Fostex DMT8-vl multitrack recorder shows signs of its imminent death; when getting hot, I could not record anymore. Must be said this drive comes from an old Sun Station, and has been replaced because I/O failures were detected by Solaris. It worked at least 5 years in my recorder: not so bad. However, time is now to replace it. The DMT8-vl is not able to handle drives bigger than 8.4 GB. Well, it is able to (the current drive is 15 GB), but only 8.4 GB will be usable. My tought was to use a 8 GB CompactFlash; having no moving parts means no noise, which is quite temptating for a music recording device. I purchased a CompactFlash-IDE adapter on the internet (8$) and I had to build a male-male IDE cable adapter (4$). Unfortunately, this doesn't work. The drive is correctly discovered by the operating system, which proposes to format it ("format IDE?"). After answering "yes", the formating runs pretty fast (faster than on a real drive), ...

Samba: Clients get "system error 1223" (or 123) after a server reboot

Facts: a Linux+Samba server shares anonymously a folder. After a reboot, Win clients could not attach the share drive anymore. C:\>net use \\mylinux\folder Enter the user name for 'mylinux': System error 1223 has occurred. The operation was canceled by the user. C:\>net view \\mylinux\ System error 123 has occurred. The filename, directory name, or volume label syntax is incorrect. The process are present, and tcpdump doesn't provide much information. What's going on? After hours of headscratching, the light came: the firewall was on and no rules for the Samba protocol! Grrr!

Emulation of Fujitsu MB8877 Floppy Disk Controler with Arduino

Update This project was never finished. My initial motivation was that I only had one 5"1/4 floppy disk. Since then, I have been given about thirty floppy disks whose halves are new. The other reason is that my prototype was never recognized by the QX1; the sequencer was simply not booting up. Since I had other sequencers to play with (PC with 2 x MOTU MTPAV USB + MidiSport 4X4 = 20 inputs, 20 outputs, 320 channels), I gave up for now and put back the controler and floppy drive. However, I'm still studying the possibility of completely replacing the motherboard with a Raspberry Pi: check this llink . Context I have a Yamaha QX1 MIDI sequencer from 1984. The backup medium is 5"1/4 floppy disks. This project is an attempt to replace the floppy drive (Canon MF-221) and the Floppy Disk Controler (Fujitsu MB8877a) with an Arduino. Documentation Yamaha QX1 Operating Guide.pdf Yamaha QX1 Reference Manual.pdf Yamaha QX1 Overall Circuit Diagram Part 1...