Como na resposta de Oleg, acredito que a variável correta a ser definida é CMAKE_RUNTIME_OUTPUT_DIRECTORY . Usamos o seguinte em nossa raiz CMakeLists.txt:
set(CMAKE_ARCHIVE_OUTPUT_DIRECTORY ${CMAKE_BINARY_DIR}/lib)
set(CMAKE_LIBRARY_OUTPUT_DIRECTORY ${CMAKE_BINARY_DIR}/lib)
set(CMAKE_RUNTIME_OUTPUT_DIRECTORY ${CMAKE_BINARY_DIR}/bin)
Você também pode especificar os diretórios de saída por destino:
set_target_properties( targets...
PROPERTIES
ARCHIVE_OUTPUT_DIRECTORY "${CMAKE_BINARY_DIR}/lib"
LIBRARY_OUTPUT_DIRECTORY "${CMAKE_BINARY_DIR}/lib"
RUNTIME_OUTPUT_DIRECTORY "${CMAKE_BINARY_DIR}/bin"
)
Em ambos os casos, você pode acrescentar _[CONFIG]
ao nome da variável / propriedade para fazer o diretório de saída aplicam-se a uma configuração específica (os valores padrão para a configuração são DEBUG
, RELEASE
, MINSIZEREL
e RELWITHDEBINFO
).
CMAKE_ARCHIVE_OUTPUT_DIRECTORY
, considerando que o comandoinstall(TARGETS <target_name>)
ainda reclama sobre "não foi fornecido DESTINO RUNTIME para destino executável"? Esta variável supostamente fornece um valor padrão; portanto, oinstall
comando não deve reclamar da ausência de aRUNTIME DESTINATION
.Usar
set(CMAKE_RUNTIME_OUTPUT_DIRECTORY "/some/full/path/to/bin")
fonte
Use a
EXECUTABLE_OUTPUT_PATH
variável CMake para definir o caminho necessário. Para detalhes, consulte a documentação online do CMake:Documentação do CMake 2.8.8
fonte
Quanto a mim, estou usando o cmake 3.5, o abaixo (
set variable
) não funciona:mas isso funciona (
set set_target_properties
):fonte
fonte
use esta linha config:
set(EXECUTABLE_OUTPUT_PATH ${PROJECT_SOURCE_DIR}/build/)
coloque qualquer projeto CMakeLists.txt.
este $ {PROJECT_SOURCE_DIR} é o seu diretório de origem atual onde o local do projeto.
e se vagar por que $ {EXECUTABLE_OUTPUT_PATH}
verifique este arquivo
CMakeCache.txt
e pesquise a palavra-chaveoutput path
,todas as variáveis definidas aqui, daria uma explicação completa do projeto
setting·
fonte
fonte
Independentemente de eu definir isso no CMakeLists.txt principal ou no individual, ele ainda pressupõe que eu quero todas as bibliotecas e caixas fora do caminho principal, que é a suposição menos útil de todas.
fonte
Para adicionar isso:
Se você estiver usando o CMAKE para gerar uma solução do Visual Studio e desejar que o Visual Studio produza arquivos compilados em / bin, a resposta de Peter precisará ser um pouco modificada:
fonte