Сгенерированный CMake проект Ninja не удается при компиляции с GCC

У меня есть кроссплатформенный проект CMake, который отлично работает с make/gcc на Linux и с MSVC на винде. Я хотел дать ninja попробуйте сравнить с make, Вот как я создаю ninja проект:

cmake -GNinja ../Source/

а потом я бегу

ninja

но это не с этой ошибкой

/usr/bin/c++ -DmyPreprocessors ... -ImyIncludes ... -g3 -o0 -m32 -MMD -MT CMakeFiles/myProj.dir/myCode.cpp.o -MF CMakeFiles/myProj.dir/myCode.cpp.o.d -o CMakeFiles/myProj.dir/myCode.cpp.o -c /path/to/myCode.cpp

cc1plus: fatal error: CMakeFiles/myProj.dir/myCode.cpp.d: No such file or directory

и когда я проверяю CMakeFiles/myProj.dir/ здесь нет myCode.cpp.d файл.

Но когда я меняю компилятор на clang все волшебно работает! Ниндзя начинает компилировать, а затем успешно ссылки.

Когда я бегу ninja в подробном режиме я получаю ту же команду, кроме компилятора clang (/usr/bin/c++ => /usr/bin/clang++-3.9).

что происходит здесь?

РЕДАКТИРОВАТЬ:

Вот пример файла CMakeLists.txt, который я использовал для воспроизведения той же ошибки:

cmake_minimum_required(VERSION 3.5)
project(randomProj)

set(SOURCE_FILES myFile.cpp)

include_directories(Generic)

set(EXECUTABLE "TEST")

add_executable(${EXECUTABLE} ${SOURCE_FILES})
set(LIBRARY_SEARCH_PATH ${CMAKE_SOURCE_DIR}/path/to/my/libs)

set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -w -g3 -o0")
target_link_libraries(${EXECUTABLE}  ${LIBRARIES})

и мой myFile.cpp это:

int main(){}

Я не указал ничего явно для gcc, За clang Однако я просто экспортирую CC а также CXX флаги:

export CC=clang-3.9
export CXX=clang++-3.9

и тогда я вызываю cmake.

2

Решение

Задача ещё не решена.

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]