سؤال

للأسباب غير ذات صلة بالذكر أنني أود أن أتمكن من تضمين ملفات متعددة في ملف أدوات. لنفترض أن مخطط الأدوات الخاص بي يحتوي على ما يلي:

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

يحتوي File2 على سطر التعريف:

message(STATUS "file2 is ok")

يحتوي cmakelists.txt على:

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

أسميها باستخدام الأمر التالي:

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

الآن ، أتوقع الإخراج التالي:

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

ومع ذلك أحصل على هذا:

-- 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!

لا يقتصر الأمر على طباعة Cmake المعلومات مرتين ، بل تدعي أيضًا أنها لا يمكن العثور على ملفات مضمنة في المرة الثالثة بعد ذلك.

أيه أفكار؟

هل كانت مفيدة؟

المحلول

ليس فقط cmake يطبع المعلومات مرتين

إنه طبيعي: أثناء التكوين ، يتم تنفيذ عدة خطوات. في كل خطوة ملف الأدوات المستخدم.

كما يدعي أنه لا يمكن العثور على ملفات متضمنة في المرة الثالثة بعد ذلك. أيه أفكار؟

توفير مسار مطلق.

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top