Para contextualizar a resposta de Pavel, o binário compilado do Google Mock não é distribuído com o pacote do Ubuntu por causa do motivo dado aqui . Essa explicação é para o Google Test, mas o princípio se aplica a qualquer biblioteca C ++.
Especificamente, diz:
Nos primeiros dias, dissemos que você poderia instalar o Google Test compilado
bibliotecas em sistemas * nix usando make install. Então, todo usuário do seu
máquina pode gravar testes sem recompilar o teste do Google.
Isso pareceu uma boa ideia, mas tem um jeito: todo usuário precisa
para compilar seus testes usando os mesmos sinalizadores de compilador usados para compilar o
instalou bibliotecas de teste do Google; caso contrário, ele pode correr em indefinido
comportamentos (ou seja, os testes podem se comportar de maneira estranha e
não há razões óbvias).
Por quê? Porque C ++ tem essa coisa chamada Regra de Uma Definição: se dois
Os arquivos de origem C ++ contêm diferentes definições do mesmo
classe / função / variável, e você ligá-los juntos, você violar o
regra. O linker pode ou não pegar o erro (em muitos casos é
não é exigido pelo padrão C ++ para capturar a violação). Se isso
não, você tem comportamentos estranhos em tempo de execução que são inesperados e
difícil de depurar.
Se você compilar o Google Test e seu código de teste usando um compilador diferente
bandeiras, eles podem ver diferentes definições do mesmo
classe / função / variável (por exemplo, devido ao uso de #if no Google Test).
Portanto, para sua sanidade, recomendamos evitar a instalação
bibliotecas de teste do Google pré-compiladas. Em vez disso, cada projeto deve
compilar o Google Test em si de tal forma que pode ter certeza de que o mesmo
flags são usados para o Google Test e os testes.
Portanto, seu problema original foi que a instalação do pacote google-mock
instalou apenas o código-fonte e, quando você tentou compilar seu aplicativo de exemplo, não foi possível encontrar nenhuma biblioteca do gmock.