Multiple libraries were found for...

I am attempting to program a Digispark usb from scratch. I am trying to use DigiKeyboard.h and DigiMouse.h libraries, but I cannot compile with both of them in the program.

#include <DigiKeyboard.h>
#include <DigiMouse.h>
void setup(){

void loop(){
  DigiKeyboard.sendKeyStroke(KEY_R, MOD_GUI_RIGHT);

Here is the error string:
In file included from C:\Users\ethan\Desktop\sketch_oct19a\sketch_oct19a.ino:1:0:

C:\Users\ethan\AppData\Local\Arduino15\packages\digistump\hardware\avr\1.6.7\libraries\DigisparkKeyboard/DigiKeyboard.h:220:8: error: ‘unsigned char usbFunctionSetup(unsigned char*)’ previously defined here

uchar usbFunctionSetup(uchar data[8]) {


In file included from C:\Users\ethan\Desktop\sketch_oct19a\sketch_oct19a.ino:2:0:

C:\Users\ethan\AppData\Local\Arduino15\packages\digistump\hardware\avr\1.6.7\libraries\DigisparkMouse/DigiMouse.h: In function ‘unsigned char usbFunctionDescriptor(usbRequest*)’:

C:\Users\ethan\AppData\Local\Arduino15\packages\digistump\hardware\avr\1.6.7\libraries\DigisparkMouse/DigiMouse.h:319:16: error: invalid conversion from ‘const unsigned char*’ to ‘unsigned char*’ [-fpermissive]

usbMsgPtr = rt_usbDeviceDescriptor;


C:\Users\ethan\AppData\Local\Arduino15\packages\digistump\hardware\avr\1.6.7\libraries\DigisparkMouse/DigiMouse.h:324:16: error: invalid conversion from ‘const unsigned char*’ to ‘unsigned char*’ [-fpermissive]

usbMsgPtr = rt_usbHidReportDescriptor;


Multiple libraries were found for “DigiKeyboard.h”
Used: C:\Users\ethan\AppData\Local\Arduino15\packages\digistump\hardware\avr\1.6.7\libraries\DigisparkKeyboard
Multiple libraries were found for “DigiMouse.h”
Used: C:\Users\ethan\AppData\Local\Arduino15\packages\digistump\hardware\avr\1.6.7\libraries\DigisparkMouse
exit status 1

The problem is not the multiple libraries.

It looks like you can't use both at the same time. No experience with DigiSpark but based on the error that you get I tend to agree with the below comment in

DKWatson: These are two different functions. You comment one out, you lose the integrity of that library as the other will not work for both. This is an example of poorly written libraries, especially as they originate from the same source. The libraries were never written with consideration that they may be used together as there will be other errors reported once you fix that one.

This needs to be brought to the attention of Digispark, not the Arduino Forum. Both libraries are 5 years old and it may be that corrections have been made. You should look for newer versions or other libraries that are not in conflict. If you choose to sort it yourself, you will need to find out which library your call is intended for and edit the other one, changing it's name and all corresponding references to it.