Como ignorar o método principal de uma biblioteca ligada dinâmica em C ++
-
13-12-2019 - |
Pergunta
Em nosso aplicativo, usamos várias bibliotecas dinamicamente ligadas.Recentemente atualizamos a versão de uma dessas bibliotecas.Os desenvolvedores dessa biblioteca estão fornecendo um método principal desde que esta nova versão (não fazendo mais do que imprimir o mundo Hello).
O problema é que estamos usando GTEST e GMock, que geram seu próprio método principal.Quando agora corremos nosso binário de teste, acabamos de obter "Hello World", então o principal método errado está sendo levado.
Como podemos forçar o principal método dos testes a serem usados?
update: Este parece ser um problema gmock / gtest.O método principal é normalmente gerado, mas este não é o caso, pois encontra um método principal já existente agora.
Solução
Não há algumas formas em sua situação.Você terá que remover o principal da biblioteca compartilhada.Simplesmente não pertence ai.
Outras dicas
Eu tive um problema semelhante com duas bibliotecas com métodos principais, que foi resolvido alterando a ordem das bibliotecas para o vinculador.