Microsoft MVP성태의 닷넷 이야기
VC++: 53. Windows 7에서 gcc.exe 실행 시 Access denied 오류 [링크 복사], [링크+제목 복사],
조회: 27026
글쓴 사람
정성태 (techsharer at outlook.com)
홈페이지
첨부 파일
 

Windows 7에서 gcc.exe 실행 시 Access denied 오류

미리 말씀드리면, 저는 cygwin이나 gcc에 대한 경험이 거의 없습니다. 단지, 필요할 때 책에 소개된 대로 따라하는 정도의 감각만 가지고 있다고 해야겠지요. ^^

마침, cygwin을 구성하고 gcc를 실행해 볼 일이 생겼는데, 명령행에서 다음과 같은 오류만 발생했습니다.

E:\OS\dev\cygwin\bin>gcc
Access is denied.

검색을 해보니, 다음과 같은 글이 나옵니다.

GCC - Access denied
; http://omgili.com/mailinglist/cygwin/cygwin/com/m2t961f6df41004191807y75bc02cfiabd7f684a8d5f8camailgmailcom.html

아하... symbolic link로 연결된 파일이라고 하는군요. 저도 직접 해보니 동일하게 gcc-4.exe로 연결된 것을 확인할 수 있었습니다.

E:\OS\dev\cygwin\bin>file gcc2.exe
gcc2.exe: symbolic link to `/etc/alternatives/gcc'

E:\OS\dev\cygwin\bin>file /etc/alternatives/gcc
/etc/alternatives/gcc: symbolic link to `/usr/bin/gcc-4.exe'

실제로 hexa 에디터로 보니까, gcc.exe는 다음과 같이 껍데기에 불과하더군요.

gcc_access_denied_1.png

음... 그냥 gcc-4.exe로 실행해야 되는 걸까요?

아닙니다. 윈도우에서도 동일하게 ^^ symbolic link로 만들면 됩니다. (만약을 대비해서) 기존의 gcc.exe를 gcc2.exe로 이름 변경하고 다음과 같이 mklink를 이용해서 symbolic link를 생성해 줄 수 있습니다.

E:\OS\dev\cygwin\bin>mklink gcc.exe gcc-4.exe
symbolic link created for gcc.exe <<===>> gcc-4.exe

이렇게 하고 나면, 윈도우 명령행에서도 gcc.exe가 잘 실행이 되고, Cygwin bash shell에서도 정상적으로 실행이 됩니다. ^^




[이 글에 대해서 여러분들과 의견을 공유하고 싶습니다. 틀리거나 미흡한 부분 또는 의문 사항이 있으시면 언제든 댓글 남겨주십시오.]







[최초 등록일: ]
[최종 수정일: 4/3/2021]

Creative Commons License
이 저작물은 크리에이티브 커먼즈 코리아 저작자표시-비영리-변경금지 2.0 대한민국 라이센스에 따라 이용하실 수 있습니다.
by SeongTae Jeong, mailto:techsharer at outlook.com

비밀번호

댓글 작성자
 



2011-07-14 06시06분
[민광] 심볼릭링크 파일의 권한설정만 바꿔주면 되지 않을까요? 윈도도 비스타 이후부터는 권한 관리가 엄격해 진것 같더군요.
[guest]
2011-07-14 06시21분
그렇지도 않은 것이, 권한 설정은 별다르게 문제가 없었습니다. 심지어 local admin 권한으로 한 경우에도 실행이 안되었고. 아마도 이해가 되는 것이, 위의 hexa 에디터로 본 화면에서도 나오지만, 윈도우의 file symbolic link가 그런식으로 구현되어 있지는 않기 때문일 것입니다. 즉, cygwin내의 bash shell에서만 동작되는 링크 파일인 것이죠.
정성태

... 61  62  63  64  65  66  67  68  [69]  70  71  72  73  74  75  ...
NoWriterDateCnt.TitleFile(s)
12211정성태4/27/202019280개발 환경 구성: 486. WSL에서 Makefile로 공개된 리눅스 환경의 C/C++ 소스 코드 빌드
12210정성태4/20/202020738.NET Framework: 903. .NET Framework의 Strong-named 어셈블리 바인딩 (1) - app.config을 이용한 바인딩 리디렉션 [1]파일 다운로드1
12209정성태4/13/202017428오류 유형: 614. 리눅스 환경에서 C/C++ 프로그램이 Segmentation fault 에러가 발생한 경우 (2)
12208정성태4/12/202016004Linux: 29. 리눅스 환경에서 C/C++ 프로그램이 Segmentation fault 에러가 발생한 경우
12207정성태4/2/202015859스크립트: 19. Windows PowerShell의 NonInteractive 모드
12206정성태4/2/202018452오류 유형: 613. 파일 잠금이 바로 안 풀린다면? - The process cannot access the file '...' because it is being used by another process.
12205정성태4/2/202015120스크립트: 18. Powershell에서는 cmd.exe의 명령어를 지원하진 않습니다.
12204정성태4/1/202015141스크립트: 17. Powershell 명령어에 ';' (semi-colon) 문자가 포함된 경우
12203정성태3/18/202017969오류 유형: 612. warning: 'C:\ProgramData/Git/config' has a dubious owner: '...'.
12202정성태3/18/202021217개발 환경 구성: 486. .NET Framework 프로젝트를 위한 GitLab CI/CD Runner 구성
12201정성태3/18/202018460오류 유형: 611. git-credential-manager.exe: Using credentials for username "Personal Access Token". [1]
12200정성태3/18/202018552VS.NET IDE: 145. NuGet + Github 라이브러리 디버깅 관련 옵션 3가지 - "Enable Just My Code" / "Enable Source Link support" / "Suppress JIT optimization on module load (Managed only)"
12199정성태3/17/202016183오류 유형: 610. C# - CodeDomProvider 사용 시 Unhandled Exception: System.IO.DirectoryNotFoundException: Could not find a part of the path '...\f2_6uod0.tmp'.
12198정성태3/17/202019545오류 유형: 609. SQL 서버 접속 시 "Cannot open user default database. Login failed."
12197정성태3/17/202018853VS.NET IDE: 144. .NET Core 콘솔 응용 프로그램을 배포(publish) 시 docker image 자동 생성 - 두 번째 이야기 [1]
12196정성태3/17/202015977오류 유형: 608. The ServicedComponent being invoked is not correctly configured (Use regsvcs to re-register).
12195정성태3/16/202018286.NET Framework: 902. C# - 프로세스의 모든 핸들을 열람 - 세 번째 이야기
12194정성태3/16/202021008오류 유형: 607. PostgreSQL - Npgsql.NpgsqlException: sorry, too many clients already
12193정성태3/16/202017959개발 환경 구성: 485. docker - SAP Adaptive Server Enterprise 컨테이너 실행 [1]
12192정성태3/14/202020003개발 환경 구성: 484. docker - Sybase Anywhere 16 컨테이너 실행
12191정성태3/14/202021074개발 환경 구성: 483. docker - OracleXE 컨테이너 실행 [1]
12190정성태3/14/202015658오류 유형: 606. Docker Desktop 업그레이드 시 "The process cannot access the file 'C:\Program Files\Docker\Docker\resources\dockerd.exe' because it is being used by another process."
12189정성태3/13/202021258개발 환경 구성: 482. Facebook OAuth 처리 시 상태 정보 전달 방법과 "유효한 OAuth 리디렉션 URI" 설정 규칙
12188정성태3/13/202026045Windows: 169. 부팅 시점에 실행되는 chkdsk 결과를 확인하는 방법
12187정성태3/12/202015635오류 유형: 605. NtpClient was unable to set a manual peer to use as a time source because of duplicate error on '...'.
12186정성태3/12/202017416오류 유형: 604. The SysVol Permissions for one or more GPOs on this domain controller and not in sync with the permissions for the GPOs on the Baseline domain controller.
... 61  62  63  64  65  66  67  68  [69]  70  71  72  73  74  75  ...