如何从c编写的源文件构建可执行文件?

时间:2010-11-27 14:39:45

标签: c windows compiler-construction makefile

在src目录中几乎没有带.c anf .h扩展名(cmdline.c cmdline.h core.c core.h等)的文件,还有一个没有扩展名的文件“MakeFile”。是否有可能将这些源文件构建到Windows 7(64位)上的某些可执行文件中?我想我需要为C或某些sdks下载编译器吗?

3 个答案:

答案 0 :(得分:3)

你需要:

  • 下载并安装C / C ++编译器(我推荐TDragon's distribution of MinGW),
  • 将编译器添加到PATH(安装程序可以为大多数情况执行此操作);通过打开cmd.exe并输入gcc -vmingw32-make -v来验证是否已完成,如果您的路径设置正确,两者都应该为您提供一半的版本信息,
  • 通过cmd.exe,导航至Makefile所在的文件夹并致电mingw32-make

从现在开始,一切都应该自动编译。如果没有,请发布错误。


更新

首先,获取MSys包非常有用。安装它并且您将拥有更新版本的make(从现在开始使用它而不是mingw32-make。)

关于CreateProcess错误,它与系统PATH变量太长有关。你需要做这样的事情:

  • 打开cmd
  • 执行set PATH=c:/mingw32/bin;c:/msys/1.0/bin(如果不同,请更改此处的路径以反映您自己的安装)
  • 然后和以前一样:导航到项目的目录,运行make。如果你没有错过任何外部库,一切都应该顺利。

BTW-切记不要在带空格的目录中安装MinGW或MSys。

答案 1 :(得分:0)

我不是Windows开发人员.. 但仍然据我所知。 Visual Studio(即2008,我猜)能够读取Makefile。 请看一下..如果需要,请将此makefile更改为其格式..

有很多开源产品是独立于平台的......它们可以在两个操作系统上使用它们提供的Makefile进行编译。

或者使用'cygwin'

开发人员C ++在windows中运行,但它实际上是在Windows中购买的GCC代码,是否有人熟悉他们用于将linux(.sh)转换为可执行文件的过程?

答案 2 :(得分:0)

  

我想我需要为C或某些sdks下载编译器吗?

当然是编译器,但您可能需要的其他库将完全取决于代码本身。成功构建还可能取决于原始代码和makefile的预期目标。 makefile可能是一个GNU makefile,但还有其他类似但不兼容的make实用程序,如Borland Make和MS NMake。如果它是一个简单的构建,您可以完全避免makefile问题,并使用IDE提供的项目管理,如Visual C ++ 2010 Express。

如果您不知道这段代码是什么,代码是什么以及它需要构建什么,那么您将冒险构建它。也许您应该发布一个原始来源的链接,以便您可以获得有关如何构建它的更具体的建议。


<强> [编辑]

好的,现在看看你试图构建的代码,这是一个非常简单的构建,所以如果你想避免使用GNU make,那么你可以将src文件夹中的所有* .c文件添加到在IDE中进行项目并构建它。

然而,有一个严重的问题,它使用BSD套接字API和Linux系统头。您需要首先将代码移植到Windows API(例如WinSock(非常类似于BSD套接字)),或者在Cygwin(在某种程度上使用大锤)下构建它。可能还有其他需要排序的Linux依赖项,我没有详细介绍,但看起来相当简单。也就是说,如果你没有关于编译这些东西的第一个线索,那么这可能不是你可以做的任务吗?

当然编译代码可能只有半个问题,如果它被设计为在Linux上运行,可能存在阻止它在Windows上运行的运行时依赖性。我再次没有详细介绍过。

另外看一下代码,我会建议一些谨慎,这可能不是最优质的代码。这可能是不公平的,但一个明显的缺陷和迹象表明缺乏经验是标题中没有包含警卫。