# Wiki page 'Develop interdependent Kaleidoscope Plugins'

**URL:** <https://community.keyboard.io/t/wiki-page-develop-interdependent-kaleidoscope-plugins/698>\
**Category:** Programming\
**Created:** [November 5, 2017, 10:06pm UTC](https://community.keyboard.io/t/wiki-page-develop-interdependent-kaleidoscope-plugins/698 "2017-11-05T22:06:22Z")\
**Posts on this page:** 4\
**Page:** 1

<div class="post-metadata">

**Author:** ![craigdissel](https://avatars.discourse-cdn.com/v4/letter/c/b5ac83/32.png) [@craigdissel](https://community.keyboard.io/u/craigdissel)\
**Post date:** [November 5, 2017, 10:06pm UTC](https://community.keyboard.io/t/wiki-page-develop-interdependent-kaleidoscope-plugins/698/1 "2017-11-05T22:06:22Z")

</div>

I’m not sure the best way to discuss / comment on pages in the Kaleidoscope wiki - certainly editing the page doesn’t seem like the best way to have a conversation, opening a GitHub issue seems a little too aggressive, and there’s no ‘talk’ / ‘discuss’ feature on the wiki. So I’m posting here, unless there’s a better mechanism I’m not yet aware of.

I just wanted to say re: the [Develop interdependent Kaleidoscope Plugins](https://github.com/keyboardio/Kaleidoscope/wiki/Develop-interdependent-Kaleidoscope-Plugins) wiki page, that the description of the issue there does not match my experience. In particular, in my sketch I have `#include "Kaleidoscope.h"` first, followed by `#include`s for a long list of plugins, all of which naturally depend on `Kaleidoscope.h`, and this compiles fine. I also have `#include "Kaleidoscope-LEDControl.h"` listed _before_ all of my various LED modes (which each depend on `Kaleidoscope-LEDControl.h` themselves), and again this compiles fine.

I imagine that the issue described on the wiki page is certainly a real issue, but that it appears in a much narrower set of circumstances than the page seems to claim. I’m not sure offhand what those narrower set of circumstances would be, as I’ve never encountered the linker errors described on the page. Maybe the behavior is only manifests on certain OSes, for instance.

I’m not saying the page gives bad advice, just that the problem is maybe not as bad or pervasive as the page might make it seem.

---

<div class="post-metadata">

**Author:** ![craigdissel](https://avatars.discourse-cdn.com/v4/letter/c/b5ac83/32.png) [@craigdissel](https://community.keyboard.io/u/craigdissel)\
**Post date:** [November 5, 2017, 10:08pm UTC](https://community.keyboard.io/t/wiki-page-develop-interdependent-kaleidoscope-plugins/698/2 "2017-11-05T22:08:08Z")

</div>

Edit: I now realize this issue was previously discussed in the thread linked below. Apologies - I suppose this should be a reply to that thread.

> [@Arduino library link order](https://community.keyboard.io/t/arduino-library-link-order/508):
>
> I just stumbled upon a problem with undefined symbol reference errors that typically come from a bad link order of the .a libraries in the avr-gcc command line that is managed by Arduino. This can easily be checked by building the firmware with \> make VERBOSE=1 At the very end of the output one can find the linker command. Here the relying library must occur before the relied library. Unfortunately, this is not handled automatically. Does anybody have a hint about how to manually fix this p…

---

<div class="post-metadata">

**Author:** ![Jennigma](https://yyz1.discourse-cdn.com/flex031/user_avatar/community.keyboard.io/jennigma/32/353_2.png) [@Jennigma](https://community.keyboard.io/u/Jennigma)\
**Post date:** [November 5, 2017, 10:51pm UTC](https://community.keyboard.io/t/wiki-page-develop-interdependent-kaleidoscope-plugins/698/3 "2017-11-05T22:51:56Z")

</div>

If you want some place off forum and smaller than an issue to talk about documentation topics, you could create a card on the Documentation project:

> **[keyboardio/Kaleidoscope](https://github.com/keyboardio/Kaleidoscope/projects/1)**
>
> Firmware for the Keyboardio Model 01 and other keyboards with AVR or ARM MCUs. - keyboardio/Kaleidoscope

I also regularly create draft pages that aren’t linked in the sidebar, and you should feel free to do the same. I won’t let cruft build up there- mine or anyone else’s, but one of the nice things about having the sidebar is having a live editing space that’s at least somewhat out of view.

I agree that the lack of document control or talk pages is frustrating, but it’s a set of trade-offs. Having fewer hoops to jump through makes it easier for novices to contribute fixes.

---

<div class="post-metadata">

**Author:** ![noseglasses](https://yyz1.discourse-cdn.com/flex031/user_avatar/community.keyboard.io/noseglasses/32/429_2.png) [@noseglasses](https://community.keyboard.io/u/noseglasses)\
**Post date:** [November 7, 2017, 3:22pm UTC](https://community.keyboard.io/t/wiki-page-develop-interdependent-kaleidoscope-plugins/698/4 "2017-11-07T15:22:46Z")

</div>

> [@craigdissel](#):
>
> I’m not saying the page gives bad advice, just that the problem is maybe not as bad or pervasive as the page might make it seem.

Good to know. Feel free to adjust the documentation in a way that informs the reader about the issue not occring under all circumstances. For me the described change of the include order affected the library link order.

But as I wrote in the wiki, I did not conduct thorough research concerning Arduino’s link order logic.
