Maneira correta de vincular bibliotecas estáticas com dll

Meu projeto se baseia em poucas bibliotecas estáticas que devem ser vinculadas à biblioteca DLL principal e obter uma única DLL como resultado.

Usando__declspec(dllexport) O atributo não leva à aparência de funções especificadas de bibliotecas estáticas para dll, bibliotecas não vinculadas a dll.

Depois, tentei construir cada biblioteca como compartilhada para obter nomes próprios das funções exportadas e criar um arquivo .def com base nelas. O uso do arquivo .def levou ao resultado.

Devemos__declspec(dllexport) e.def-file agir igualmente no meu caso?

É possível gerar um arquivo .def a partir de fontes? Como eu tenho código C ++, não sou capaz de escrever o arquivo .def sozinho por causa das classes de manipulação e presença na API, a abordagem descrita acima com dlls geradas temporariamente é inconsistente para produção.

Atualizar

Eu gostaria de explicar em detalhes sobre a estrutura do meu projeto. A solução consiste em alguns projetos (módulos).

+ 
|    
+-+ static_lib1                                          
|       +                                                
|       +--+ src                                         
|                                                        
+-+ static_lib2                                          
|       +                                                
|       +--+ src                                         
|                                                        
+-+ dynamic_lib (linked with static_lib1 and static_lib2)
        +                                                
        +--+ src

Cada subprojeto depende fracamente dos outros, vamos assumir que eles não estão conectados para maior clareza. Cada módulo possui uma interface pública própria. Eu quero ter todos os módulos como uma única biblioteca dinâmica, para que meu artefato sejadynamic_lib.dll, mas, de fato, as bibliotecas estáticas não estão vinculadas a ela.

questionAnswers(2)

yourAnswerToTheQuestion