如何安装从GitHub下载的Windows程序(用C编写)?


44

我已经下载从GitHub死简单的Windows程序(这个如果是相关的)。我将其下载为ZIP文件,但无法弄清楚如何安装。我认为它是用C编写的。我需要编译器吗?(Visual Studio?)我缺少一些简单的东西吗?


9
抱歉,这显然是我遇到的主要菜鸟问题。怎么样?没有可执行文件。
Josh Friedlander

6
您可能需要Windows SDK和关联的C标头来编译程序。通常,在自述文件中提到了相关性,并包含了编译指令。在这种情况下,都不包含任何内容,因此您必须要求回购所有者/项目作者获得相关信息。
拉尔森德(Larssend)'17

7
您确实需要一个编译器。我会联系开发人员,并询问如何构建它。例如,通常作为源提供的Linux软件包括构建说明,但我在他的Github上看不到任何说明。
LawrenceC

12
您尚未下载实际的程序,但已下载了该程序的源代码,是的,您确实需要先对其进行编译。从那里的makefile判断,您将需要构建MINGW中的所有文件。
Mokubai

Answers:


29

Github主要供程序员用于项目协作。“下载ZIP”选项会将源代码的副本下载到您的计算机上。这通常1不包含编译的可执行文件可用的拷贝/二进制文件(即; exe文件)

Releases是Github的一项功能,用于将软件运送给最终用户(通常对实际编码不感兴趣的最终用户)。发行随附发行说明和下载软件或源代码的链接。这是您应检查二进制文件的第一位

就您而言,发布页面提供下载和设置文件。

但是,许多项目将没有任何发行版(尤其是对于Windows没有发行),在这种情况下,您可以执行以下任一操作:

  1. 搜索Internet上其他位置的二进制文件。通常,DuckDuckGo之类的搜索引擎(或Google,如果愿意的话)会很容易找到想要的东西。尝试搜索<application name> for Windows<application name> exe

  2. 自己编译。您需要至少具有一些编程语言的基本知识才能做到这一点。同样,搜索引擎可以提供巨大帮助。尝试搜索compile <application name> on WindowsMinGW compile <application name>

    在这里,我将介绍Widnows编译实用程序的基础知识:

    • 下载MinGW。我个人比较喜欢程序包,因为它带有boost(多个应用程序使用)和一个很酷的shell。它还带有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。这篇 Stack Overflow帖子通常是关于makefile的,告诉我们如何在MinGW中使用它们。如果项目带有Makefile,请在手动编译源代码之前尝试一下。
      • 您现在应该可以运行了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用mingw运行配置


谢谢,这是一个很好的答案,我已将其更改为标记为肯定的答案。(我之前编辑过我的问题,以使我更清楚地知道这是我要的内容,但由于某些原因,BoundaryImposition已将其删除。)
Josh Friedlander

但是,我认为这不能满足Aibobot的赏金要求,但这在您和她/他之间。
乔什·弗里德兰德

2
@JoshFriedlander很高兴为您提供任何帮助!稍后,我将在答案中添加更多内容。是的,我正在与JourneymanGeek(Aibobot)聊天,他将要等待几天,以便浮出水面。
rahuldottech '17

1
该项目可能没有任何内容,但请注意,大多数项目可能都具有依赖项,这意味着,如果要进行编译,可能需要跟踪该软件所依赖的库,下载并安装它们(或也将其编译)。它通常不像运行makefile那样简单。他们中的一些甚至可能有其他的构建脚本,如cmake的,配置脚本等
JRH

2
在大多数情况下,过程真的那么简单吗?github实用程序的哪一部分需要比您在此处描述的要多得多的知识来编译它们?
gaazkam

87

您环顾四周,在发行页面上找到安装程序。当然您可以编译源代码,但是我认为这不是您想要的。


49
同意 如果需要询问,则不想从源代码进行编译。
thunderblaster

10
如果需要询问,您可能应该安装仅以源代码形式提供的软件...
jpaugh

11
我倾向于同意@jpaugh。尽管从源代码构建很有可能,有时甚至有必要,但这不是您只能以通用的方式询问“如何构建C程序”的事情。差异太大了。一些幸运的程序就像“编译这些文件”一样简单。其他人需要makefile。有些需要先下载依赖项。建立程序的建立过程可能很复杂,并且不一定非程序员友好。但最重要的是,您要在项目中找到一个说明如何构建的文件,因为具体情况取决于项目。
Kat Kat

35
@jpaugh-我想说您有更大的机会通过下载可执行文件来安装恶意软件-恶意软件很少是开源的。
名叫'17

3
假设您实际上可以阅读该语言。我半常规地在linux上编译东西,我看不到任何源代码。即使可以,我也不会复查every.single.line。
Journeyman Geek

66

.c和.h文件是C源代码。

您将需要安装C编译器(例如Visual Studio,tcc或类似工具),加载项目,然后对其进行编译以运行它。

失败的话,该项目会有一个发行页面(在此处),您可以通过该页面访问预编译的版本,以节省您的时间和精力。


14
如果他必须编译它,那么通常会在自述文件中对此进行解释,您甚至没有提到他应该寻找的内容。他打算去发布页面,而不仅仅是“失败(安装编译器),他应该去发布页面”
barlop

3
mingw也很受欢迎。
Zan Lynx

1
通常为特定项目量身定制以与特定的一组编译工具(称为“工具链”)一起使用-通常在自述文件中提到该项目(在UNIX和跨平台项目中,通常称为BUILD或INSTALL) 。在维护程度不高的项目中,或者在只有几个知名工具链的环境项目中,用户应该从项目文件的格式和/或内容中猜测。
ivan_pozdeev '17

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或类似名称的自定义脚本。在这种情况下,您必须将其打开并查看内部内容,或者尝试运行它并查看错误所在。如果您打开它并看到提及GCC,请回到2.2.1。MinGW步骤,但运行自定义脚本而不是make

  3. 可能根本没有构建工具。如果遇到的只是一个文件.c或一个.cpp文件,那么它很简单,可以直接进行编译。同样,它们几乎都是MinGW,因此请下载该文件,启动MSYS Shell,导航至目录,然后根据需要调用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

  • GCCMinGW)是Windows的GCC的端口。通常与一起使用make。如果该项目本机针对Windows,并且具有Makefile,则可能是针对MinGW-GCC。

  • GCCCygwin)创建一个POSIX兼容环境。这使您可以直接编译大多数为Linux或Unix编写的程序,并使它们直接在Windows下运行。最近在Windows 10中,Windows 上的Ubuntu上的Bash是替代方法。GCC通常与结合使用make

框架和库

是其他人编写的可重用代码集,许多程序依赖该库来避免重新发明轮子。您需要具有这些依赖项才能构建项目。如果幸运的话,它们将包含在您的初始下载中,但并非总是如此。

框架实际上是库的集合。许多项目使用一个框架,这也是您需要的。它们通常也带有自己的构建系统,但是将它们全部列出都是不可能的。

最困难的部分是处理额外的框架和库依赖性。如果说该项目使用Qt,那么您将需要整个混乱才能正确构建它。这是一项艰巨的任务,除非您已有经验,否则最好直接向他人寻求帮助。


1
在这种特殊情况下,makefile为您提供了一个很好的线索,因为它是mingw的第一行MINGW_PREFIX = $(shell which gcc | awk -F/bin/ '{ printf $$1 }'):)
DavidPostill

1
这一个值得赏金的imo
tbodt 17-4-23
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.