2014-07-16 6 views
0

MSYS2에서 기본 MinGW/MinGW64 디렉토리를 지정하는 방법이 있는지 궁금합니다. MSYS에서기본 mingw 디렉토리에 msys2를 설치하는 방법

(즉, MSYS-1), MSYS를 설치 한 후, 그것은 /c/mingw/msys/..., 디렉토리 구조가 예를 들면 것을 알고, 당신은 mingw-get를 사용하여와 Mingw 패키지를 설치하는 경우, 설치된 바이너리 /c/mingw/bin로 이동합니다. 나는 /mingw가 기본으로 /etc/fsab에 있기 때문에 이것이있을 것이라고 생각합니다.

이제 MSYS2/MinGW64에서 MSYS2를 사용하여 /c/mingw/msys64에서 비슷한 작업을 수행하면 이진 파일에 /c/mingw/bin이 더 이상 설치되지 않습니다. 내가 clang을 설치하는 경우 예를 들어, 다음과 같이

pacman -S mingw-w64-x86_64-clang 

바이너리가 설치됩니다

/c/mingw/msys64/mingw64/bin/clang.exe 

MSYS2이 빈/lib 디렉토리의/etc/점유율 자체 내에서 다른 mingw64 설치 (만드는 것처럼. ..). 이것은 Clang을 찾을 수 없다는보고로서 MinGW64를 혼란스럽게합니다. 나는 다른 경로를 추가 할 수 있다는 것을 알고 있지만 루트에 MinGW를 설치하고 MSYS2의 하위 폴더에 MinGW를 설치하는 것은 다소 이상합니다. 그리고 이것이 향후 툴 체인에서 모순을 일으킬 수 있다고 생각합니다.

내 질문은 MSYS2은 MinGW 패키지를 MinGW 디렉토리 트리에 MSYS과 같이 설치하도록 할 수 있습니까?

감사

답변

6

그것에 대해 생각하는 잘못된 방법은 당신이 "자체 내의 다른 mingw64 설치"를 가지고 있다고합니다. MSYS2는 "C :/mingw"라는 폴더에 넣기로 결정한 프로그램을 실행중인 시스템으로 어떤 식 으로든 mingw-w64 시스템이 아니므로 MSYS2 시스템이 루팅 된 것입니다 "C :/mingw/msys64"

MSYS2는 글로벌 시스템 루트 (즉, 설치 또는 압축 해제 할 폴더)를 선택하지 않고 3 개의 리포지토리 중 하나에 대한 루트 폴더 선택을 허용하지 않습니다. MSYS2). 이것의 주된 이유는 우리가 패키지 관리자로 pacman을 사용하고 있기 때문이며,이 시스템은 전체 시스템을 관리하는 도구이기 때문에 존재하지 않기 때문에 모든 팩맨 패키지는 절대 폴더로 압축됩니다. 전역 시스템 루트).

MSYS2 (Cygwin을 통해 MSYS2의 핵심에 대한 크레딧은 Cygwin에 있습니다)는 "/ etc/fstab"을 제공하기 때문에 "/ mingw {32,64}"를 다른 위치에 넣을 수 있다고 생각할 수 있습니다. 그리고 너는 그걸 가지고 도망 갈 수는 있지만, 나는 그저 문제를 일으키기 때문에 이것을하지 말라고 강하게 권유한다. 예를 들어 "../"의 상대 경로를 사용하여 "C :/msys64/mingw64"에서 "C :/msys64"로 이동할 수 있어야한다고 생각하는 네이티브 Windows 프로그램은 실망 스러울 것입니다. 그들은 충돌 할 것입니다. 이런 이유로 나는 그런 부서지는 체계를 달성하는 방법 당신을 말할 것이지 않는다.

MSYS2 설치는 "/", "/ mingw32"및 "/ mingw64"와 같은 결정을 내린 자체 하위 시스템으로 간주해야합니다. "폴더)를 사용하여 호환성을 개선하고 문제를보다 자주 진단하고 해결하기가 어려운 변수를 제거 할 수 있습니다.

또한 Windows 260 MAXPATH 한계로 인해 드라이브 (모든 드라이브)의 루트에 MSYS2를 설치하는 것이 좋습니다. UNC 경로를 사용하면 제한이 훨씬 더 커지지 만 대부분의 MSYS2 및 Windows 소프트웨어는 UNC 경로를 사용하지 않으며 전체 MAXPATH + 1 크기의 C 문자열 배열을 하드 코드했습니다.이렇게하면 MinGW-w64 저장소가 MSYS2 전체 시스템의 하위 리포지토리라고 생각하는 데 도움이 될 수 있습니다.

팩맨 참고로, 당신은이 페이지를 사용한다 :

pacman.conf(5) Manual Page

+0

+1 pacman tips : 감사 명확한 설명. 그러나 "이 작업을 수행하면 MinGW-w64 저장소를 전체 MSYS2 시스템의 하위 저장소로 생각하는 데 도움이 될 수 있습니다", MinGW-w64 설치시 gcc 및 관련 타사 개발 도구를 제공하는 것은 어떨까요? 그 MinGW 설치? 이것은 MSYS2와 MinGW-w64가 서로 관련이없는 두 개의 저장소 시스템을 실제로 사용한다는 것을 의미합니까? – tinlyx

+0

역사적으로 MinGW-w64는 소스 전용 프로젝트였습니다. MinGW-w64와 때로는 다른 미리 컴파일 된 바이너리를 바이너리 빌드 한 다양한 프로젝트가 있습니다. mingw-builds 프로젝트는 얼마 전에 MinGW-w64 용 '공식'바이너리 패키저가되었으므로 유일하게 '공식적인'바이너리는 툴체인 실행 파일과 mingw32-make.exe입니다. 즉, MinGW-w64 프로젝트에는 저장소 시스템이 없습니다. 한편 MSYS2에는 32 비트 Windows 소프트웨어 용 및 64 비트 Windows 소프트웨어 용으로 2 개의 MinGW-w64 리포지토리가 있습니다. 이 두 저장소는 모두 툴체인 패키지를 포함합니다. –

+0

@RayDonnelly 안녕하세요, 나는 혼란에 빠져 들었습니다. MinGW-w64를 먼저 설치하고 MSYS2를 설치하여 mingw32 및 64 용 msys 설치 디렉토리에 폴더 구조를 찾았습니다. 그런 다음 "/ etc/fstab"을 편집했습니다. 그러나 나는 네가하지 말라고 권유 한 것을 본다. 이 경우, 내가 어떻게해야한다고 생각하니? MinGW-w64를 다시 설치하여 msys 설치 디렉토리에 놓고 환경 변수를 편집하십시오. – Sndn

관련 문제