Pergunta

Por razões irrelevantes para mencionar, gostaria de incluir vários arquivos no arquivo da cadeia de ferramentas. Digamos que minha cadeia de ferramentas contenha seguintes:

message(STATUS "file1 is ok")
include(./build/file2)

O File2 contém linha de identificação:

message(STATUS "file2 is ok")

O cmakelists.txt contém:

cmake_minimum_required (VERSION 2.8.8)
project (pro)
message(STATUS "cmakelists.txt is ok")

Eu o chamo usando o seguinte comando:

cmake -DCMAKE_TOOLCHAIN_FILE=../../build/file1 ../../

Agora, eu esperaria a seguinte saída:

-- file1 is ok
-- file2 is ok
-- cmakelists.txt is ok

No entanto, entendi isso:

-- file1 is ok
-- file2 is ok
-- file1 is ok
-- file2 is ok
-- The C compiler identification is Clang 5.0.0
-- The CXX compiler identification is Clang 5.0.0
-- Check for working C compiler: /usr/bin/cc
CMake Error at /fullpath/build/file1:2 (include):
  include could not find load file:
    ./build/file2
Call Stack (most recent call first):
  /fullpath/build/Mac/CMakeFiles/2.8.12/CMakeSystem.cmake:6 (include)
  CMakeLists.txt:2 (PROJECT)
CMake Error: Internal CMake error, TryCompile configure of cmake failed
-- Check for working C compiler: /usr/bin/cc -- broken
CMake Error at /Applications/CMake 2.8-12.app/Contents/share/cmake-2.8/Modules/CMakeTestCCompiler.cmake:61 (message):
  The C compiler "/usr/bin/cc" is not able to compile a simple test program.
  It fails with the following output:
  CMake will not be able to correctly generate this project.
Call Stack (most recent call first):
  CMakeLists.txt:2 (project)
-- Configuring incomplete, errors occurred!

O CMake não apenas imprima as informações duas vezes, como também afirma que não pode encontrar arquivos incluídos pela terceira vez depois disso.

Alguma ideia?

Foi útil?

Solução

Não apenas cmake imprime as informações duas vezes

É normal: durante a configuração, várias etapas são executadas. Em todas as etapas, o arquivo da cadeia de ferramentas usado.

Ele também afirma que não pode encontrar arquivos incluídos pela terceira vez depois disso. Alguma ideia?

Fornecer um caminho absoluto.

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top