Не удается открыть файл промежуточный код компилятора permission denied
Ошибка «Permission denied» (доступ запрещён) означает, что сервер отклонил ваше соединение. У этой ошибки может быть несколько причин; наиболее общие из них приведены ниже.
Всегда использовать пользователя «git»
Все соединения длджны выполняться под пользователем «git». Если вы попытаетесь соединиться под вашим псевдонимом в propercourse, соединение не установится:
Вместо этого вы должны проверить соединение, набрав в строке:
Проверьте, что вы подключились к нужному серверу
Будьте внимательны при вводе команд с клавиатуры. В некоторых случаях корпоративная сеть может привести к проблемам разрешения записи DNS.
Так как документ подготовлен в рамках курсов повышения квалификации «Правильный курс» , то и проверка подключения будет описана именно на этом примере.
Напомним, что доступ к репозиторию [email protected] организован по порту 25000, а не по стандартному для SSH порту 22. Поэтому в команде подключения вы должны явно указать номер порта.
Для того, чтобы убедиться в том, что вы подключаетесь к нужному домену, введите следующую команду, добавив в строке номер порта '-p 2500' :
8 Answers 8
So it turns out that the solution to this was simply to delete the .suo file in the project folder and rebuild the project. Why that worked, I don't know, but it seemed to do so.
- Building the entire solution
- Building in parallel
- Not properly defining project dependencies
What happens is one project is writing to the object while another project is attempting to read that object and cannot because the write lock prevents it.
Please correct me if I am wrong.
I never had this specific error but as a general rule, I found that Visual Studio has a lot of issues with security. I can't register COM assemblies on my version for example. For that reason, I always run Visual Studio as Administrator (having an admin account is not enough, you want the shortcut to start as admin). This solves my COM issue and others I've encountered over the years. A long shot, but I hope that helps.
I had seen this on various other forums as a possible solution, so this was one of the first things I tried. Unfortunately, my problem doesn't seem to be linked to this (I can manually find the file and open it after the fact).
Another thing that strikes me as odd here is the filename itself.. First off, I never seen my Visual Studio use the temp folder like that, it should be using the project folder for this. Also, the filename itself doesn't look like a filename but more like a line out of a project file. I would carefully review every single setting you have access to in release mode (the output folder for one) for anything that contains part of the string you see there.You could just delete the release config and redo it from debug too.
So I went through all of the project properties and tested any that didn't match between the Release and Debug configurations with no. Is there another place you would suggest looking (I'm not very experienced with VC++)?
Visual Studio is a bit borked when it comes to generated file access rights on Windows 7 & Vista.
First, try running Visual Studio Express as an administrator, by right-clicking on its shortcut and selecting the yellow-blue shield option.
If that doesn't help, disable User Access Control altogether (you should be able to do that with an administrator account).
Running as an administrator was one of the first things I tried, with no success. I tried disabling UAC, and that didn't seem to have an effect either.
I have a solution with multiple projects which I inherited from previous developers. I also have this problem and I finally found out where it comes from, so maybe this is also what happens in the posters case as well.
In my project setup, there are lots of source files which are referenced in the project. When Visual Studio determines the build order, it builds projects, which are independent of each other, in parallel. So it can happen that a file which is compiled in two separate projects is built at the same time, which can cause the lock to happen.
In my opinion, referencing files in a project is evil. :) The proper way would be, to put shared files in a library and then set the dependencies accordingly. Theoretically one can resolve this issue as well, by setting the build dependencies for projects sharing files, but that is IMO arbitrary, because the projects may not have a meaningfull dependency (as it is in my case) they just happen to reuse the same code.
In my case I can sometimes build the whole solution without a problem and sometimes I have to restart it several times.
Another reason this can happen is, when the settings are such that some (intermediate) files are generated into the same folder, so the settings should be reviewed as well.
Я учусь программировать на языке C++. Работаю в DEV C++. Когда компилирую программу в первый раз - все в порядке, но при повторной компиляции пишет эту ошибку и еще "[Error] ld returned 1 exit status". Подскажите пожалуйста как решить проблему.
Выкинуть DEV C++. Поставить взамен нормальную среду.
Visual Studio, QT Creator, C++ Builder, Code::Block.
А лучше выкинуть того кто такое советует - дев с++ нормальная среда выполняющая ряд целей просто изумительно. А советовать выкинуть лишь изза того что вы дуб дерево в ней - так можно и всё на свете выкинуть если советчик - неуч.
Ирэн Ницше Искусственный Интеллект (212693) Во бред. Если вы думаете, что такую примитивную среду надо отдельно изучать, то кто дуб, очевидно
Воздержаться от использования кириллических имён в таких случаях. Зайдите в папку файловым менеджером пусть и тотал коммандером и переименуйте латыницей все файлы проекта, одним именем соответственно.
"при повторной компиляции пишет эту ошибку и еще "[Error] ld returned 1 exit status" - это означает что скомпилированная программа завершилась в аварийном режиме, и видимо ошибка в коде не была отловлена на предкомпиляционном этапе. Ищите проблему в коде, однозначно.
Compiling single file.
--------
- Filename: D:\Игры\Actual\2Programs\Dev-Cpp\Work\new.cpp
- Compiler Name: TDM-GCC 4.8.1 32-bit Release
Processing C++ source file.
--------
- C++ Compiler: D:\Игры\Actual\2Programs\Dev-Cpp\MinGW64\bin\g++.exe
- Command: g++.exe "D:\Игры\Actual\2Programs\Dev-Cpp\Work\new.cpp" -o "D:\Игры\Actual\2Programs\Dev-Cpp\Work\new.exe" -m32 -g3 -I"D:\Игры\Actual\2Programs\Dev-Cpp\MinGW64\include" -I"D:\Игры\Actual\2Programs\Dev-Cpp\MinGW64\x86_64-w64-mingw32\include" -I"D:\Игры\Actual\2Programs\Dev-Cpp\MinGW64\lib\gcc\x86_64-w64-mingw32\4.8.1\include" -I"D:\Игры\Actual\2Programs\Dev-Cpp\MinGW64\lib\gcc\x86_64-w64-mingw32\4.8.1\include\c++" -L"D:\Игры\Actual\2Programs\Dev-Cpp\MinGW64\lib32" -L"D:\Игры\Actual\2Programs\Dev-Cpp\MinGW64\x86_64-w64-mingw32\lib32" -sta
Compilation results.
--------
- Errors: 1
- Warnings: 0
- Output Filename: D:\Игры\Actual\2Programs\Dev-Cpp\Work\new.exe
- Output Size: 1,31245994567871 MiB
- Compilation Time: 4,32s
1. Кириллица - абсолютное зло.
2. Проверь, не запущен ли уже твой процесс, по необходимости - убей.
3. Если не помогло - поставь менее нервный антивирус.
не могу наверняка утверждать что процесс не запущен так как не знаю как называется процесс в диспетчере
Здравствуйте, cures, Вы писали:
C>
C>Кто ещё с таким сталкивался и как боролся?
Найдите утилиту, которая показывает кто открыл/заблокировал файл с вашей программой. Посмотрите и потом делайте выводы.
Примеры утилит:
здесь
здесь
S>Найдите утилиту, которая показывает кто открыл/заблокировал файл с вашей программой. Посмотрите и потом делайте выводы.
Русинович и Unlocker хандла в упор не видят, при этом Unlocker не может его удалить, LockHunter из эксплорера говорит, что всё чисто, а если ему задать этот файл в менюшке — обижается, что у меня не хватает прав, и рекомендует обратиться к владельцу или администратору, коими являюсь я
Может быть его надо пускать от имени System, но я уже забыл, как это делается.
Зато OFV (в тестовом режиме системы) таки хандл видит, говорит следующее:
В том и засада, что лочит его какая-то часть системы (или может какой-то неудалившийся огрызок ДрВеба), зачем-то мусолит его несколько минут, потом выплёвывает.
Поверить в это, самому не натолкнувшись, очень сложно, поэтому везде в форумах и предлагают "закрыть программу".
Как копать дальше внутрь процесса System? Он состоит из многих тредов (их показывает ProcessHacker), но, насколько я знаю, нет понятия принадлежности хандла нити, только процессу? Я подозреваю нить MpFilter.sys, она якобы отвечает за безопасность.
Или может у меня завёлся какой-то станный руткит? Но зачем ему лочить экзешники? Причём лочить только после попытки запуска, если не запускать, то можно перекомпилировать сколько угодно.
Ещё один вариант — его кладут в какой-то кэш, на случай если вдруг начнут часто запускать. Тогда как такое отключать? Индексирование у меня отключено глобально.
На всякий случай привожу исходный текст программы:
Собирал и под 32-битный и под 64-битный режимы, всё едино.
Здравствуйте, cures, Вы писали:
C>Кто ещё с таким сталкивался и как боролся?
попробуй сменить режим отображения в папке (на табличный вид если он у тебя не стоит по дефолту) попробуй оставить одну ИДЕ шку закрыв в эксплорере окно с этой папкой.
Здравствуйте, lollipop, Вы писали:
L> попробуй сменить режим отображения в папке (на табличный вид если он у тебя не стоит по дефолту) попробуй оставить одну ИДЕ шку закрыв в эксплорере окно с этой папкой.
По дефолту режим табличный, обычно я и работал в одной идешке, создавал новый проект и его пилил, а эксплорером туда не лазил. Это уже когда стало лочиться, начал разбираться. Кто-то глубже хватает, не эксплорер.
Замерил ProcessHacker-ом, хандл экзешника висит в процессе System ровно одну минуту (може плюс-минус секунду на ловкость рук). Так происходит не только с моим собственным экзешником, но и с любым (?) запускаемым, например, теми же ld.exe, as.exe, cb_console_runner.exe, при их запуске.
Неужели такое происходит только у меня, а у других разработка на седьмой винде идёт совершенно нормально?
Здравствуйте, cures, Вы писали:
C>Замерил ProcessHacker-ом, хандл экзешника висит в процессе System ровно одну минуту (може плюс-минус секунду на ловкость рук). Так происходит не только с моим собственным экзешником, но и с любым (?) запускаемым, например, теми же ld.exe, as.exe, cb_console_runner.exe, при их запуске.
C>Неужели такое происходит только у меня, а у других разработка на седьмой винде идёт совершенно нормально?
Похоже что глюк, завязанный на что-то долгоработающее. Мож опрос чего-то по сети с залоченным ехе-шником? Минута — на сетку похоже. У Марка Руссиновича что-то подобное проскакивало в "Деле о медленной презентации" кажись.
Здравствуйте, vladtronko, Вы писали:
V>Похоже что глюк, завязанный на что-то долгоработающее. Мож опрос чего-то по сети с залоченным ехе-шником? Минута — на сетку похоже. У Марка Руссиновича что-то подобное проскакивало в "Деле о медленной презентации" кажись.
Нашёл, у нас перевели как "демонстрации". Там 72 секунды, настолько я вряд ли ошибся. И там подсистема дотнета тормозила, а у меня — обычные экзешники.
Зачем-то ядро тупо хватает хандл на них при их запуске, и отпускает через минуту.
Вот такое пишут в МСДН: If you call CreateFile on a file that is pending deletion as a result of a previous call to DeleteFile, the function fails. The operating system delays file deletion until all handles to the file are closed. GetLastError returns ERROR_ACCESS_DENIED.
Симптомы ровно эти, а хандл на файл принадлежит процессу System, в который Руссинович ходить не умеет.
Пробовал отключать DEP, не помогло. Где-то проскакивало, что Windows при удалении файла и быстром его создании кладёт его на время в какой-то кэш, может это оно, но тогда как уменьшать это время?
Здравствуйте, cures, Вы писали:
C>Нашёл, у нас перевели как "демонстрации". Там 72 секунды, настолько я вряд ли ошибся. И там подсистема дотнета тормозила, а у меня — обычные экзешники.
C>Зачем-то ядро тупо хватает хандл на них при их запуске, и отпускает через минуту.
C>Вот такое пишут в МСДН: If you call CreateFile on a file that is pending deletion as a result of a previous call to DeleteFile, the function fails. The operating system delays file deletion until all handles to the file are closed. GetLastError returns ERROR_ACCESS_DENIED.
C>Симптомы ровно эти, а хандл на файл принадлежит процессу System, в который Руссинович ходить не умеет.
C>Пробовал отключать DEP, не помогло. Где-то проскакивало, что Windows при удалении файла и быстром его создании кладёт его на время в какой-то кэш, может это оно, но тогда как уменьшать это время?
Предлагаю создать в корне диска (лучше не того где живет 7ка) средствами проводника от имени юзера директорию и настроить IDE чтобы собирать-компилить в нее.
Здравствуйте, vladtronko, Вы писали:
V>Предлагаю создать в корне диска (лучше не того где живет 7ка) средствами проводника от имени юзера директорию и настроить IDE чтобы собирать-компилить в нее.
Именно так и сделал, выше в распечатке от OpenFilesView видно, что файл r0.exe живёт в папке r0, которая живёт в корне
Full Path : \r0\r0.exe
И это не тот раздел, на котором живёт семёрка, а специально зарезервированный на случай необходимости установки хрюши. Сегодня попробовал не только на NTFS-е, но и на VFAT-е, а кроме того — даже на другом физическом диске. Ничего не помогает
Интересно, что означает в распечатке маска Granted Access?
Пока самый разумный выход, который я вижу, — держать проекты на самбе. Это — решение, но кривоватое: для программирования в Windows 7 требуется Linux (или может быть достаточно Windows XP).
Здравствуйте, cures, Вы писали:
C>Здравствуйте, vladtronko, Вы писали:
V>>Предлагаю создать в корне диска (лучше не того где живет 7ка) средствами проводника от имени юзера директорию и настроить IDE чтобы собирать-компилить в нее.
C>Именно так и сделал, выше в распечатке от OpenFilesView видно, что файл r0.exe живёт в папке r0, которая живёт в корне
C>Full Path : \r0\r0.exe
C>И это не тот раздел, на котором живёт семёрка, а специально зарезервированный на случай необходимости установки хрюши. Сегодня попробовал не только на NTFS-е, но и на VFAT-е, а кроме того — даже на другом физическом диске. Ничего не помогает
Недоглядел.
C>Интересно, что означает в распечатке маска Granted Access?
Все эти Access-ы это (если я правильно понимаю) биты прав доступа записанные в дополнительных потоках NTFS.
C>Пока самый разумный выход, который я вижу, — держать проекты на самбе. Это — решение, но кривоватое: для программирования в Windows 7 требуется Linux (или может быть достаточно Windows XP).
Может с правами поиграться в свойствах папки? Равно как и со свойствами совместимости запуска IDE? Студия же ни 2008я ни 2010я таким не страдает — значит можно настроить работу и другой среды в 7ке. "Я так думаю" (с) Мимино
Здравствуйте, cures, Вы писали:
C>В том и засада, что лочит его какая-то часть системы (или может какой-то неудалившийся огрызок ДрВеба), зачем-то мусолит его несколько минут, потом выплёвывает.
C>Поверить в это, самому не натолкнувшись, очень сложно, поэтому везде в форумах и предлагают "закрыть программу".
C>Как копать дальше внутрь процесса System? Он состоит из многих тредов (их показывает ProcessHacker), но, насколько я знаю, нет понятия принадлежности хандла нити, только процессу? Я подозреваю нить MpFilter.sys, она якобы отвечает за безопасность.
C>Или может у меня завёлся какой-то станный руткит? Но зачем ему лочить экзешники? Причём лочить только после попытки запуска, если не запускать, то можно перекомпилировать сколько угодно.
C>Ещё один вариант — его кладут в какой-то кэш, на случай если вдруг начнут часто запускать. Тогда как такое отключать? Индексирование у меня отключено глобально.
Пробовал реестр зачистить RegOrganizer-ом — 1 случай из 4х выравнивается работа. В остальных случаях — WindowsWay. Т.е. format c: /u А то и вообще удаление раздела и создание нового.
Потому более чем все обновления с сайта микрософта на рабочую машину ничего защитно-файрволльного не ставлю. Ибо глюконат софта в итоге почти гарантирован.
Проверка привязки публичного ключа к вашей учётной записи
Вы должны предоставить ваш публичный ключ GitLab чтобы установить защищённое соединение.
I want to compile a code program using dev c++ compiler but my compiler didn't compile my code.The program consist of two files one is header and other is implementation .cpp file. The code i want to compile is correct and working,but it didn't compiling on my pc(windows 7) Please help
The error which i am getting is
here is my compile log
Perhaps you haven't closed the last execution window you opened, so the file ld.exe is still used, and so access to it is not permitted!
Don't use Dev-C++, it's highly outdated. Use Visual Studio Express (or higher if you are a student) instead.
What Griwes said, except that I'd tend to recommend students put a flavor of Linux on a USB stick and learn to use GCC and write their own makefiles instead to start out. Learn to crawl before you walk :)
7 Answers 7
Try running task manager to determine if your program is still running.
If it is terminate it because that's why your compiler is giving you an error.
Windows 7 does not let you write directly to the root of c:\ (among other locations) unless from within a process running with administrator privileges.
The simplest workaround for you is to move your project from c:\ to another directory -- for example, c:\projects will work.
I tried all the proposed answers in my windows 7
1. run as administrator
2. Killed the process if it is running already
3. Gave full control permission to the project folder
4. Moved to different project folder.
Nothing solved my problem. finally i tried after disabling avast anti virus..it worked.
Windows 7
If you click save all files button then close and delete the makefile and others except the .cpp, .dev, .c then reopen using either .dev or .cpp or .c and then run it works.
I've found that generally, the correct answer is don't use Dev-C++ because it's a steaming pile of bleep but this would also work. I tutor students that are required to use this compiler and this problem happens with great frequency, even when not using the C: directory as Jon indicated above. It's a pile of garbage and I try my best to talk students into learning how to use GCC, or steer them towards XCode if they have a Mac.
I was able to fix the same problem by creating a new folder and saving the project into that new folder. Then I also saved the source file within that same folder and everything finally executed correctly. It seemed to be a directory issue with finding the files when it was trying to execute.
C:\Dev-Cpp\Bin..\lib\gcc\mingw32\3.4.2. \mingw32\bin\ld.exe: cannot open output file Project1.exe: Permission denied collect2: ld returned 1 exit status
This line here is the computer saying it does not have permission to work with the specified directory. Either save your work in a new folder which the program has permission to work with or run your program as an administrator.
Kind of pointless responding to an old issue but if anyone else has this problem hopefully this will save them some time.
I removed generated exe file from projects folder and error went . I am removing after every rebuld-rerun . wait 1-2 minutes if it is not removing . one time try to remove , it will refuse . leave it and it will disappear itself . meanwhile you can enjoy changes in code . tried everything , only this worked
Highly active question. Earn 10 reputation (not counting the association bonus) in order to answer this question. The reputation requirement helps protect this question from spam and non-answer activity.
For a class at the university, the professor has provided us with some skeleton code that we are to modify. When I attempt to compile the code in Visual C++ 2010 Express (x86), I receive the following error:
The account I am logged into has full read-write-modify permissions for the file in question, and I am using Windows 7 (x64). To make matters more confusing, the project compiles in Debug mode, but not in Release mode, which the professor instructed us to use.
Thank you in advance for any help.
Убедитесь, что у вас есть ключ, который используется
Команда ssh-add должна вывести длинную строку из цифр и букв. Если ничего не будет выведено на экран, вы должны сгенерировать новый SSH-ключ и связать его с GitLab.
Замечание. В большинстве систем приватные ключи по умолчанию ( ~/.ssh/id_rsa , ~/.ssh/id_dsa и ~/.ssh/identity ) автоматически добавляются к агенту аутентификации SSH. Вы не должны запускать ssh-add path/to/key , иначе вы перезапишите имя файла при генерации ключа. |
Получение детализации
Вы можете также проверить, что ключ используется при попытках соединения с [email protected] :
В этом примере у нас нет ключей для использования SSH. Значение «-1» в конце строки «identity file» означает, что SSH не может найти файла для использования. Ниже, строка «Trying private key» также показывает, что файл не найден. Если бы файл был найден, значение в этих строках было бы «1», и «Offering public key» соответственно.
Можно ли использовать в Git команду sudo ?
Вы не должны использовать команду sudo с Git. Если у вас есть веская причина использовать sudo , убедитесь, что вы используете её с каждой командой (возможо, лучше использовать su чтобы получить оболочку с правами суперпользователя (администратора) в этом месте). Если вы сгенерировали SSH-ключ без sudo , а затем пытаетесь использовать команду, подобную sudo git push , вы не должны использовать те же ключи, которые сгенерировали.
Читайте также: