I've been using a technique for embedding resources (raw binary data) into compiled executables, using a combination of C, C++ and CMake.
The code/configuration I've used is very similar to what's available in this GitHub repository, and I've even reproduced the issue with this particular sample.
Used as is, the resource embedding works great, but as soon as C++ namespacing is introduced, things start breaking left and right.
The issue seems to be that the C-style resources are by default using the global/anonymous namespace when called from within C++, but if they're called from a namespace inside C++, then that namespace gets prefixed to the resource, which results in undefined symbols.
So far I've tried all I can think of, including converting the original C-style code to C++ and using namespaces with it, which yields the same results.
More details on the specific calls/code can be seen in this GitHub issue.
Ps. I realize that there's hardly any code/context in this post, but I figured it would make more sense to link to the original topics/articles that go through this, instead of trying to explain it myself. Also, if it helps, this topic has also been discussed here and even on StackOverflow here.