В CLion с использованием Cygwin, когда я пытаюсь открыть определенный проект C++, я получаю следующую ошибку при анализе проекта CMake файл:CLion with Cygwin: g ++. Exe .../compiler-arguments.txt: Нет такой ошибки в файле или каталоге
Error:Configuration emdw [Debug]
Compiler exited with error code 1: g++ -xc++ -Demdw_EXPORTS -I/cygdrive/c/Users/Dirk/.CLion2016.2/system/cmake/generated/emdw-e21eebc3/e21eebc3/Debug/src -I/cygdrive/f/devel/emdw/src -I/cygdrive/f/devel -I/cygdrive/f/devel/patrecII/src -std=c++11 -O3 -g -Wall -v -dD -E
g++.exe: error: @/cygdrive/f/users/heetbeet/AppData/Local/Temp/compiler-arguments.txt: No such file or directory
g++.exe: error: /cygdrive/f/users/heetbeet/AppData/Local/Temp/compiler-file: No such file or directory
g++.exe: fatal error: no input files
compilation terminated.
Я принимаю его CLion генерировать эти типы файлов компилятор arguments.txt/компилятор файлы, так как нет таких инструкций не найдены в реальной структуре CMake. Обратите внимание, что я могу успешно запустить cmake.exe
в этом проекте из bash Cygwin без каких-либо ошибок.
Какая магия CLION пытается достичь с помощью файла compiler-arguments.txt
(если это CLion) и как начать отладку этой проблемы?
Я могу подтвердить, что при нажатии на кнопку Reload CMake Project
в CLion,
два файла с именами compiler-arguments.txt
и compiler-file
действительно созданы в F:\users\heetbeet\AppData\Local\Temp
(то есть в Cygwin /cygdrive/f/users/heetbeet/AppData/Local/Temp/
).
Содержание compiler-arguments.txt
является:
-xc++ -Demdw_EXPORTS -I/cygdrive/c/Users/Dirk/.CLion2016.2/system/cmake/generated/emdw-e21eebc3/e21eebc3/Debug/src -I/cygdrive/f/devel/emdw/src -I/cygdrive/f/devel -I/cygdrive/f/devel/patrecII/src -std=c++11 -O3 -g -Wall -v -dD -E -D___CIDR_IGNORE_DEFINITIONS_START
compiler-file
содержит кучу #if
'с, #ifdef
-х, с первых 20 строк, как:
#define ___CIDR_IGNORE_DEFINITIONS_END
#if !(defined (__has_extension)) && defined(__has_feature)
#define __has_extension __has_feature
#endif
#if !defined(__has_attribute)
#define __has_attribute(x) 0
#endif
#ifdef __has_feature
#if __has_feature(cxx_constexpr)
____CIDR_test_query_feature->cxx_constexpr=1
#else
____CIDR_test_query_feature->cxx_constexpr=0
#endif
#if __has_feature(cxx_trailing_return)
____CIDR_test_query_feature->cxx_trailing_return=1
#else
____CIDR_test_query_feature->cxx_trailing_return=0
#endif
#if __has_feature(c_generic_selections)
____CIDR_test_query_feature->c_generic_selections=1
<...>
Thanks @uta. Теперь, когда я думаю об этом, мой Cygwin или мой «Администратор» в последнее время генерируют файлы со странными разрешениями. Поэтому вы считаете, что это проблема с разрешением файла. –
Да, это мое предположение. Смесь POSIX и WIN32 хуже. Убедитесь, что у вас есть только одна подсистема unix в пути (Mingw xor cygwin xor power shell). И не изменяйте учетную запись для проекта (или оцениваемых привилегий), пока вы работаете с cygwin. Результат непредсказуем из-за «необычного» ACL/DACL в файлах, написанных cygwin utils. – uta
Спасибо, я испортил права доступа к файлам, потому что я запустил Clion (или Cygwin, не могу точно запомнить) в качестве администратора. Не спрашивай меня, почему я был таким глупым. Спасибо за ваши глаза орла в определении проблемы, я буду более строг в своем использовании run-as-administrator в будущем! –