"Se um trabalhador quiser fazer bem o seu trabalho, ele deve primeiro afiar suas ferramentas." - Confúcio, "Os Analectos de Confúcio. Lu Linggong"
Primeira página > Programação > ## Como posso usar vários compiladores para C++ em um único projeto CMake?

## Como posso usar vários compiladores para C++ em um único projeto CMake?

Publicado em 2024-11-08
Navegar:185

## How Can I Use Multiple Compilers for C   in a Single CMake Project?

CMake: navegando em vários compiladores para um único idioma

CMake segue o princípio de atribuir um único CMAKE_CXX_COMPILER para todos os arquivos de origem C em um Arquivo CMakeLists.txt. Essa abordagem apresenta desafios ao tentar combinar host e compilação cruzada em um único arquivo CMakeLists.txt.

O dilema: vários compiladores para o mesmo idioma

Conforme a questão original, o cerne da questão está em encontrar uma solução para utilizar vários compiladores para a mesma linguagem, especificamente C .

O Compromisso: Limitado Opções

Infelizmente, o design do CMake não atende prontamente a esse requisito. O CMake mantém um único conjunto de propriedades do compilador que se aplicam a todos os destinos em um arquivo CMakeLists.txt. Conseqüentemente, para empregar vários compiladores, é necessário executar o CMake duas vezes.

Alternativas: comandos personalizados ou arquivos separados

Uma solução alternativa envolve o uso de comandos personalizados, essencialmente criando scripts de shell glorificados. No entanto, esta abordagem se desvia do objetivo desejado.

Uma solução mais limpa envolve separar os processos de compilação em arquivos CMakeLists.txt distintos. Embora evite a ligação entre diferentes arquiteturas, elimina a necessidade de código redundante. Para manter a consistência, seções comuns dos scripts CMake podem ser extraídas em arquivos separados e incluídas por meio da função include(). A desvantagem dessa abordagem é a perda da compilação de comando único. Para atenuar isso, um script wrapper pode ser criado em uma linguagem de script preferida para invocar os comandos CMake necessários.

Tutorial mais recente Mais>

Isenção de responsabilidade: Todos os recursos fornecidos são parcialmente provenientes da Internet. Se houver qualquer violação de seus direitos autorais ou outros direitos e interesses, explique os motivos detalhados e forneça prova de direitos autorais ou direitos e interesses e envie-a para o e-mail: [email protected]. Nós cuidaremos disso para você o mais rápido possível.

Copyright© 2022 湘ICP备2022001581号-3