Despite Keil IntelliSense claiming that mbed.h is not found, project can be build successfully, thus the error is “fake” and not valid.
Here is a screenshot:
Our entire class has this exact same issue. And yes in all of our instances, the main.cpp was from the right active project, yet Keil invokes this error.
Keil Studio Cloud has been really buggy and messy in the few past weeks. Sometimes works flawlessly but most of the other time,it is really slow and impossible to accomplish anything.
This particular problem though I believe has been manifested since 18.02.2022. Any project created before this date (or any cloned) does not have this issue.
The good news is that the project can be built without problems but it will be nice to get rid of these annoying red errors that are completely false.
I tried to reproduce that and I can agree, something is really changed and not to right direction.
There is no information about any change around this in release note. And it seems like it is related to a change in build tool, because for some reason the BUILD folder is not created in new projects and not used in old projects. Also changes in mbed_app.json are ignored sometimes.
Hi Danial, Jan,
Thank you for reporting it. We will investigate this intellisense issue and come back to you.
Arek - Studio team
Hi there Arkadiusz,
Thank you for your reply and thank you for forwarding this issue for further investigations. I should also mention, that this issue is still present (as of 10 march, 2022) only on Mbed Keil Studio Cloud. The Mbed Studio is working flawlessly.
The other problems with Keil Studio is duplicating projects. For some reason, it is now almost impossible to duplicate some of my old projects. It just doesn’t duplicate correctly so the duplicated file becomes useless. I believe these issues are somehow related. It would be nice if we could have a console window for the VM / containers used to power and run keil in the cloud.
I’m suggesting this, because similar problem sometimes occurs in the regular Mbed Studio. The solution is to simply go the location of your project on the local PC and duplicate the project manually. The cool thing about Mbed Studio (Not Keil) is that it does have a Console window tool. You can do same steps using this tool. Or reopen Mbed Studio.
This way, you can also access Git (or Mercurial) commands and lot more!
The latest version of Keil Studio Cloud rolling out today fixes the problems with intellisense. Please let us know if you see further issues.
Hello @mgordon01 and @arekzaluski,
Thank you, it seems to be ok again, no errors and BUILD folder is back again.
But an older issue with intellisense still persist. Functions from STD library like are
strlen(...) are marked as errors -
Use of undeclared identifier 'strlen' and it does not matter what header I tried to include.
I also figure out a strange behavior with the bare metal profile now. When I create the bare metal project from Keil Studio’s templates, then it is OK. But when I create full profile, like standart Blinky, and the add mbed_app.json with bare metal configuration then an error appears -
In included file: 'mbed_rtx_storage.h' file not found
Thanks for reporting the issue with duplicate. The problem is likely the size of the mbed-os directory causing problems with the copy operation. We’ll investigate to see if we can improve things here. If the program is in a version control remote (e.g. GitHub), a work-around would be to import the project from the remote with a different name. If not, you could manually copy files other than mbed-os from the old project to a new directory, then use the Mbed Libraries view to pull in mbed-os.
Also thanks for the suggestion regarding terminal support. We’ve got this one on our backlog, but there are some potential security issues for us to think about before enabling this.
We’ll investigate the strlen issue, possibly an issue with the standard libraries we include for intellisense.
To work around the bare metal project issue, you could try deleting the mbed_config.h file from the BUILD directory, then re-selecting the program as active. Hopefully the intellisense should work after that. We’ll investigate to see if we can improve this flow.
And the issue is fixed! Thank you for the fast responses both in updates and replies! I’ll marke this Topic as solved.