Skip to content

Undefined symbol errors when consuming the library as shared/dynamic #205

@BwL1289

Description

@BwL1289

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:

  1. 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.
  2. Keep "-fvisibility=hidden" and manually annotate symbols intended to be public with: __attribute__((visibility("default"))), however, this will require a significant amount of effort.
  3. Replace "-fvisibility=hidden" with "-fvisibility=default" and manually annotate symbols intended to be private with __attribute__((visibility("hidden")))

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type
    No fields configured for issues without a type.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions