GitHub에서 다운로드 한 Windows 프로그램 (C로 작성)을 어떻게 설치합니까?


44

나는 GitHub의에서 죽은 간단한 윈도우 프로그램을 (다운로드 한 가 관련이있는 경우). ZIP 파일로 다운로드했지만 설치 방법을 알 수 없습니다. 그것은 C로 작성되었습니다. 컴파일러가 필요합니까? (Visual Studio?) 내가 놓친 간단한 것이 있습니까?


9
죄송합니다. 이것은 내가 겪고있는 주요 멍청한 문제입니다. 어떻게? 실행 파일이 없습니다.
Josh Friedlander

6
프로그램을 컴파일하려면 Windows SDK 및 관련 C 헤더가 필요할 수 있습니다. 일반적으로 종속성이 언급되고 컴파일 지침이 Readme에 포함됩니다. 이 경우 어느 것도 포함되지 않으므로 리포 소유자 / 프로젝트 작성자에게 관련 정보를 요청하도록 요청해야합니다.
Larssend

7
컴파일러가 필요합니다. 나는 개발자에게 연락하여 빌드하는 방법을 묻습니다. 예를 들어 소스로 제공되는 Linux 소프트웨어는 일반적으로 빌드 지침을 포함하지만 그의 Github에는 아무것도 표시되지 않습니다.
LawrenceC

12
실제 프로그램을 다운로드하지 않았고 프로그램의 소스를 다운로드 했으므로 먼저 컴파일해야합니다. 거기에있는 makefile로 판단하면 MINGW에 무엇이든지 빌드해야합니다.
Mokubai

21
여기에 실행 파일입니다 github.com/renatosilva/winutils/releases
barlop

답변:


29

Github은 주로 프로그래머가 프로젝트 공동 작업에 사용합니다. 'Zip 다운로드'옵션은 소스 코드 사본을 컴퓨터로 다운로드합니다. 이것은 보통 일이 컴파일 가능한 실행 파일의 사본을 포함하지 않는 / 바이너리 (즉, EXE 파일)

Releases 는 최종 사용자 (일반적으로 실제 코딩에 관심이없는)에게 소프트웨어를 제공하기위한 Github 기능입니다. 릴리스에는 소프트웨어 또는 소스 코드를 다운로드하기위한 릴리스 정보 및 링크가 제공됩니다. 바이너리를 확인해야하는 첫 번째 장소 입니다.

귀하의 경우 릴리스 페이지 는 다운로드 및 설정 파일을 제공합니다.

그러나 많은 프로젝트에는 릴리스 (특히 Windows 용이 아님)가 없으므로 다음 중 하나를 수행 할 수 있습니다.

  1. 인터넷의 다른 곳에서 바이너리를 검색하십시오. 일반적으로 DuckDuckGo (또는 원하는 경우 Google) 와 같은 검색 엔진 은 원하는 것을 쉽게 찾을 수 있습니다. 를 검색해보세요 <application name> for Windows<application name> exe.

  2. 직접 컴파일하십시오. 그렇게하려면 최소한 프로그래밍 언어에 대한 기본 지식이 있어야합니다. 여기서도 검색 엔진이 도움 이 될 수 있습니다 . 를 검색해보세요 compile <application name> on WindowsMinGW compile <application name>.

    다음은 Widnows 용 컴파일 유틸리티의 기본 사항을 설명합니다.

    • MinGW를 다운로드하십시오 . 나는 패키지가 부스트 (여러 응용 프로그램에서 사용하는)와 멋진 껍질과 함께 제공되기 때문에 개인적으로 선호 합니다 . 또한 git소스가 별도로 다운로드되지 않고 Github 또는 다른 Git 버전 제어 저장소에서 호스팅되는 파일을 컴파일하려는 경우 매우 유용 할 수 있습니다.

    • cmd또는 에서 다음 명령을 실행하십시오 powershell.

      • cd c:\sources\hello: 소스 파일이있는 곳으로 디렉토리를 변경하십시오.
      • g++ helloworld.cpp -o helloworld.exe: 여기는 helloworld.cpp기본 소스 파일 helloworld.exe의 이름이며 컴파일 된 실행 파일의 이름입니다.
      • 여러 파일을 컴파일 해야하는 경우 -o스위치 전에 파일을 나열하십시오 .g++ helloworld.cpp foo.cpp -o helloworld.exe
      • 다음은 C ++에 대한 지침입니다. C로 프로그래밍 된 응용 프로그램을 다루는 경우 파일 확장자는 .c대신에 .cpp사용되므로 gcc대신 명령을 사용해야합니다 g++. 나머지는 다소 동일합니다
      • 제대로 작동하는 실행 파일을 컴파일하기 위해 더 많은 명령 줄 인수를 지정해야 할 수도 있습니다. 프로젝트 페이지에는 일반적으로 이러한 세부 정보가 있습니다.
      • 또한 아마도 makefile을 조사하고 싶을 것입니다 . 스택 오버플로 포스트는 일반적으로 메이크에 대해, 그리고 이 하나 는 MinGW 함께 사용하는 방법을 우리에게 알려줍니다. 프로젝트에 메이크 파일이있는 경우 소스를 수동으로 컴파일하기 전에 시도하십시오.
      • 이제 실행할 수 있어야합니다 helloworld.exe.
    • 참고 : 대부분의 프로젝트에는 README 파일이 제공됩니다. 이름에서 알 수 있듯이 이러한 파일에는 소프트웨어 컴파일 및 실행과 관련된 중요한 정보가 포함되어 있으며이를 읽으면 불필요한 번거 로움을 피할 수 있습니다.

1 참고 : 때로는 bin다운로드 한 파일 중에 사용 가능한 실행 파일 / 바이너리가 포함 된 폴더가있을 수 있습니다.

Windows에서 GNU / Linux 명령 행 유틸리티를 사용하려면 CygwinGOW 도 참조하십시오 . 최신 버전의 유용한 실행 파일을 여기 에서 다운로드 할 수 있습니다 .

추가 읽기 :
http://www.mingw.org/wiki/MinGW_for_First_Time_Users_HOWTO
https://gcc.gnu.org/onlinedocs/index.html#dir
https://stackoverflow.com/questions/22873884/how-do-i -run-configure-with-mingw


감사합니다. 이것은 훌륭한 답변이며 결정적인 것으로 표시되도록 변경했습니다. (이전에 내가 찾던 것이 더 명확 해 지도록 내 질문을 편집했지만 어떤 이유로 BoundaryImposition이 편집
Josh Friedlander

그러나 그것이 Aibobot의 현상금 요청을 충족시키는 것은 아니라고 생각하지만 그것은 당신과 그녀 / 그 사이에 있습니다.
Josh Friedlander

2
@JoshFriedlander 도와 줘서 다행입니다! 나중에 답변에 더 추가하겠습니다 ... 그렇습니다. JourneymanGeek (Aibobot)와 대화를 나,습니다. 그는 며칠 동안 새로운 답변이 나오기를 기다릴 것입니다.
rahuldottech

1
이 프로젝트에는 없을 수도 있지만 대부분의 프로젝트에는 종속성 이있을 수 있습니다. 즉, 컴파일 경로를 진행하는 경우 소프트웨어가 의존하는 라이브러리를 추적하고 다운로드하여 설치해야 할 수도 있습니다 ( 또는 컴파일하십시오). 일반적으로 makefile을 실행하는 것만 큼 간단하지 않습니다. 그들 중 일부는 cmake, configure script 등과 같은 다른 빌드 스크립트를 가지고있을 수도 있습니다.
jrh

2
대부분의 경우 프로세스가 그렇게 간단합니까? github 유틸리티 중 어느 부분이 여기에 설명 된 것보다 컴파일하기 위해 실질적으로 더 많은 지식이 필요합니까?
gaazkam

87

릴리스 페이지 에서 설치 프로그램을 둘러보고 찾을 수 있습니다. 물론 소스를 컴파일 할 수는 있지만 그것이 원하는 것이라고 생각하지 않습니다.


49
동의했다. 요청해야한다면 소스에서 컴파일하고 싶지 않습니다.
thunderblaster

10
요청해야한다면 소스 형식으로 만 제공되는 소프트웨어를 설치 해서는 안됩니다 .
jpaugh

11
@jpaugh에 동의하는 경향이 있습니다. 소스에서 빌드하는 것이 가능하고 때로는 필요하지만, 일반적인 방법으로 "C 프로그램을 어떻게 작성합니까?"라고 물어볼 수있는 것은 아닙니다. 너무 많은 차이가 있습니다. 일부 행운의 프로그램은 "이 파일을 컴파일"하는 것만 큼 간단합니다. 다른 사람들은 makefile이 필요합니다. 일부를 먼저 다운로드하려면 종속성이 필요합니다. 빌드를 설정하는 과정은 복잡 할 수 있으며 반드시 프로그래머에게 친숙하지는 않습니다. 무엇보다도 구체적인 것은 프로젝트마다 다르기 때문에 빌드 방법을 설명하는 파일을 프로젝트에서 찾고자합니다.
Kat

35
@jpaugh-실행 파일을 다운로드하여 맬웨어를 설치할 가능성이 훨씬 높다고 말하지만 맬웨어는 거의 오픈 소스가 아닙니다.
namey

3
실제로 언어를 읽을 수 있다고 가정합니다. 나는 리눅스에서 세미 루틴을 컴파일하고 소스를 읽을 수 없거나 읽을 수 없습니다. 내가 할 수 있더라도 every.single.line을 검토하지는 않을 것입니다.
Journeyman Geek

66

.c 및 .h 파일은 C 소스 코드입니다.

Visual Studio, tcc 등의 C 컴파일러를 설치하고 프로젝트를로드 한 다음 컴파일하여 실행해야합니다.

실패하면 프로젝트에 릴리스 페이지 ( here )가있어 미리 컴파일 된 버전에 액세스하여 시간과 노력을 절약 할 수 있습니다.


14
만약 그가 그것을 컴파일해야한다면, 보통 읽어보기에 설명되어 있으며, 언급해야 할 내용은 없습니다. 그는 릴리스 페이지로 가야한다. "컴파일러 설치에 실패하고, 릴리스 페이지로 가야한다"
barlop

3
mingw도 인기가 있습니다.
Zan Lynx

1
특정 프로젝트는 일반적으로 특정 컴파일 도구 세트 ( "도구 체인"이라고 함)와 함께 사용하도록 맞춤화됩니다.이 도구는 일반적으로 readme 파일 (UNIX 및 크로스 플랫폼 프로젝트에서 일반적으로 BUILD 또는 INSTALL이라고 함)에서 언급됩니다. . 잘 알려지지 않은 프로젝트 또는 잘 알려진 툴체인이 적은 환경을위한 프로젝트에서 사용자는 프로젝트 파일의 형식 및 / 또는 내용을 추측해야합니다.
ivan_pozdeev

TCC? 정말? 당신은 심각하지 않았습니까?
Yashas

18

이 답변은 소스 전용 Windows 응용 프로그램 (C)을 구축하는 일반적인 질문을 해결합니다. OP와 같은 운이 좋으면 미리 컴파일 된 바이너리를 찾을 수 있습니다.

여기서 가장 먼저 알아야 할 것은 소스에서 앱을 빌드하는 단일 방법이 없다는 것입니다. 서로 다른 프로젝트가있는 것처럼 거의 많은 변형이 있습니다. 일반적인 단계는 다음과 같습니다.

  1. 운이 좋으면 프로젝트는 일반적으로 README파일 내에서 빌드 지침을 제공 합니다. 간혹 INSTALL파일이나 기타 설명서 가있을 수도 있습니다 . 사용 가능한 경우 지침을 따르십시오. 그들은 최선의 방법입니다.

    불행히도 다른 사람들이 말했듯이 지침없이 필요한 빌드 단계를 재구성하는 것은 매우 어렵습니다. 그러나 우리는 최소한 여기에서 최선의 노력을 기울일 수 있으며, 이는 가장 간단한 프로젝트에 효과적입니다.

  2. 지침이 부족하여 다음 호출 포트는 필요한 빌드 도구를 확인하는 것입니다.

    1. .sln또는 .vcxproj확장자를 가진 파일을 찾으면 아마도 MSBuild / Visual Studio 프로젝트 일 것입니다. Visual Studio Community 또는 Express (C ++ 용) 사본을 다운로드 한 후 해당 프로젝트 파일을 열고 도구 모음에서 재생 단추를 클릭하십시오 (또는 빌드 메뉴 사용).

    2. 를 찾으면 Makefile아마도 필요할 것 make입니다. 그러나 독립적이고 호환되지 않는 시스템이 너무 많기 때문에 상황이 더욱 어려워 make집니다.

      1. Windows를 대상으로하기 때문에 아마도 MinGW 를 사용할 것입니다 . 그 사본을 다운로드하고 시작 메뉴에서 MSYS를 시작한 cd다음 프로젝트가 포함 된 디렉토리로 이동하여 ( )을 실행하십시오 make.

      2. 드문 경우이지만 Cygwin 인 경우가 있습니다 (불행하게도 쉽게 알 수있는 방법은 없지만 MinGW에서 "posix"관련 오류로 오류가 발생하는 경우 괜찮은 방법입니다) . 대신 Cygwin 을 설치해야 합니다. 불행히도 이것은 기본 Windows 바이너리를 빌드하지는 않습니다. Cygwin을 통해 매번 프로그램을 시작해야합니다.

    3. "빌드 도구"는 이름 build.bat또는 이와 유사한 사용자 정의 스크립트 일 수 있습니다 . 이 경우 파일을 열고 내부 내용을 보거나 실행하여 오류가 무엇인지 확인해야합니다. 이 파일을 열고의 언급이 있으면 GCC2.2.1로 돌아가십시오. MinGW 단계이지만 대신 사용자 지정 스크립트를 실행하십시오 make.

  3. 빌드 도구가 전혀 없을 수 있습니다. 당신이 만나는 모든 것이 단일 .c또는 .cpp파일이라면, 직접 컴파일을 할 수있을 정도로 간단 할 것입니다. 이들은 거의 항상 다시,이다 는 MinGW 그래서 MSYS 쉘, 디렉토리로 이동 한 호출 중 하나를 시작, 그 다운로드, gcc또는 g++필요에 따라를 - 예를gcc -o program.exe program.c

  4. 이 중 어느 것도 작동하지 않을 수 있습니다. 어느 단계에서나 오류 메시지가 표시되면 누락 된 내용에 대한 단서가 포함될 수 있습니다. 하나의 가능성은 특정 프레임 워크 또는 라이브러리가 부족한 것일 수 있습니다. 만약 생각하면 다운로드하여 빌드 환경에 추가 할 수는 있지만 일반적으로 사소한 프로세스는 아니며 많은 변형이 없습니다. 답변으로 그들을 커버하는 방법.


용어 사전

빌드 도구

빌드 도구는 당신은 매우 몇 가지 명령과 함께 프로젝트를 빌드 할 수 있습니다. 소스 파일이 둘 이상인 대부분의 프로젝트의 경우 빌드 도구가 어딘가에 관련됩니다. 몇 가지 빌드 도구가 있지만 가장 일반적인 도구는 다음과 같습니다.

  • make 는 Linux의 모든 곳에서 사용되며 Windows에서는 점점 더 일반적입니다. 를 사용하는 프로젝트 make는 일반적으로의 존재로 식별 할 수 있습니다 Makefile.

  • MSBuild 는 Windows마다 다르며 일반적으로 Visual Studio와 함께 표시됩니다. 이들은 보통 *.sln또는 *.vcxproj파일을 동반 합니다.

툴체인

툴체인은 컴파일러와 지원 도구이다. 빌드 도구와 마찬가지로 몇 가지가 있으며 일반적으로 빌드 도구 중 하나와 함께 사용됩니다.

  • MSVC 는 Microsoft의 툴체인입니다. 이것은 Windows 고유 개발에 가장 일반적인 툴체인입니다. 이것은 일반적으로 MSBuild 시스템과 함께 사용되며 빌드는 일반적으로 Visual Studio를 통해 생성됩니다. 그러나 최신 MSVC 프로젝트 사용할 있습니다 Makefile.

  • GCC ( MinGW )는 Windows 용 GCC 포트입니다. 일반적으로와 함께 사용됩니다 make. 프로젝트가 기본적으로 Windows를 대상으로하고을 가진 경우 Makefile아마도 MinGW-GCC 일 것입니다.

  • GCC ( Cygwin )는 POSIX 호환 환경을 만듭니다. 이를 통해 Linux 또는 Unix 용으로 작성된 대부분의 프로그램을 직접 컴파일하고 Windows에서 직접 작동시킬 수 있습니다. 더 최근에는 Windows 10에서 Bbun on Windows의 Bash 가 대안입니다. GCC는 일반적으로와 함께 사용됩니다 make.

프레임 워크와 라이브러리

라이브러리 는 다른 사람들이 작성한 재사용 가능한 코드 세트로, 많은 프로그램이 바퀴를 재발 명하지 않기 위해 의존합니다. 프로젝트를 빌드하려면 이러한 종속성을 사용할 수 있어야합니다. 운이 좋으면 초기 다운로드에 포함되지만 항상 그런 것은 아닙니다.

프레임 워크 는 사실상 라이브러리 모음입니다. 많은 프로젝트가 필요한 하나의 프레임 워크를 사용합니다. 이것들은 종종 자체 빌드 시스템과 함께 제공되지만 모두 나열하는 것은 불가능합니다.

가장 어려운 부분은 추가 프레임 워크 및 라이브러리 종속성을 처리하는 것입니다. 예를 들어 프로젝트에서 Qt 를 사용하는 경우 제대로 빌드하려면 전체 혼란이 필요합니다. 이것은 큰 사업이며, 사전 경험이 없다면 다른 사람들에게 직접 도움을 요청하는 것이 좋습니다.


1
이러한면에서 특별한 경우 메이크는 당신이 첫 번째 라인으로와 Mingw위한 것임을 좋은 단서입니다 제공 MINGW_PREFIX = $(shell which gcc | awk -F/bin/ '{ printf $$1 }'):
DavidPostill

1
이것은 하나의 현상금 imo 가치가있다
tbodt
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.