aws-lambda-cpp
aws-lambda-cpp copied to clipboard
Undefined symbol errors when consuming the library as shared/dynamic
The "-fvisibility=hidden" (see CMakeLists.txt#L77) in CMakeLists.txt causes undefined symbols errors when using this library as shared object.
It's not a problem when using it as a static library because visibility settings doesn't affect that by design.
There are multiple solutions for this problem:
- Just remove
"-fvisibility=hidden". We are currently using this approach as a workaround because we currently don't have many symbols to be considered private, this may be a viable option. - Keep
"-fvisibility=hidden"and manually annotate symbols intended to be public with:__attribute__((visibility("default"))), however, this will require a significant amount of effort. - Replace
"-fvisibility=hidden"with"-fvisibility=default"and manually annotate symbols intended to be private with__attribute__((visibility("hidden")))