Como recompilar o arquivo de origem toda vez que você usa o cmake 2.8.2 em compilação única para c ++ 11 e c ++ 98 para criação de biblioteca compartilhada?

Eu tenho uma estrutura de diretório de projeto de:

Root
  Source
    Common
      MyFolder
      ++ My 3 source files and header 

Quando estou construindo meu projeto, ele gera de 3 a 4 bibliotecas compartilhadas.Lib1 compilado usando c ++ 98 e outros usando c ++ 11. Os sinalizadores são adicionados no CmakeList.txt, que está na raiz. Eu preciso que meus 3 arquivos de origem sejam compilados paraLib1 e para outros liberais também. mas aqui o que acontece é que o compilador está primeiro compilando meu arquivo de origem para lib usando c ++ 11 e, em seguida, está tentando usar o mesmo arquivo .o para lib1. Portanto, para o arquivo .o gerado usando o c ++ 11 está lançando uma exceção quando o mesmo é usado para a biblioteca compilada do c ++ 98.

Então, como escrever isso em CmakeList.txt, de modo que o compilador, em vez de tentar usar o mesmo arquivo .o, compile o arquivo de origem novamente para Lib1 (biblioteca compilada c ++ 98)

Existe algum sinalizador que eu possa especificar para que ele não pegue o arquivo .o pré-compilado e o compile novamente?

Aqui, os sinalizadores não estão sendo substituídos por diferentes bibliotecas compartilhadas, mas, na verdade, o mesmo arquivo de objeto por make file está sendo usado para diferentes sinalizadores

questionAnswers(2)

yourAnswerToTheQuestion