awslabs / awslabs/aws-lambda-cpp

Undefined symbol errors when consuming the library as shared/dynamic

Aberta
#205 0 comentários 0 reações 0 responsáveis Ver no GitHub
Linguagem predominante
C++
Estrelas
465
Forks
98
Merge médio
12h 47min
PRs com merge (30d)
3

Descrição

The `"-fvisibility=hidden"` (see [CMakeLists.txt#L77](https://github.com/awslabs/aws-lambda-cpp/blob/master/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")))`

Guia de contribuição

Abrir o guia de contribuição

Direção de pesquisa

Comece pela configuração de visibilidade em CMakeLists.txt#L77 e reproduza os erros de símbolos indefinidos ao consumir a biblioteca como um shared object. Compare as abordagens de visibilidade listadas e confirme que a alteração escolhida preserva o uso como biblioteca estática, expondo os símbolos exigidos pelos consumidores da biblioteca compartilhada.

Escrita pelo modelo de indexação a partir do texto da issue.

Avaliação

Stack de tecnologia
cmake, cpp
Domínio
build-system
Tipo de issue
Bug
Dificuldade
4/5
Tempo estimado
3-5 dias
Status de atividade
Estagnada
Clareza
Precisa de esclarecimento
Facilidade para iniciantes
35/100

Receba novas issues na sua caixa de entrada

Um resumo curto de issues do GitHub para quem está começando.