编译和分发 C 程序

标签 c makefile cygwin

我刚刚完成了一个学期的 C 编程类(class),这给我留下了一些我希望得到解答的问题。

在我的课上,我们一直在使用 GCC 来编译 C 程序。这一切都很好,但我有一个关于编译的问题。

如果我想在 Windows 上构建 C 程序怎么办?没有海湾合作委员会。这是 Microsoft Visual Studio 的用途吗?

另外,如果我想编译一个程序并分发它怎么办?我将编译什么以分发给其他 Window 用户?

总而言之,我知道如何编写 C 程序,但我只是不明白您如何编写一个程序来提供给没有 C 编译器并且基本上是计算机笨蛋的人。

提前致谢, 瑞安

最佳答案

通常你需要做两件事:

  1. 将您的程序编译成独立的可执行文件或二进制文件。

    一个。在 Windows 上,这将是一个 win32 可执行文件。

    在 Linux 上,这将是一个 elf 二进制文件。

  2. 为您的程序创建安装程序包。

    一个。在 Windows 上,您可以使用 NSIS、Microsoft MSI 或 InstallShield。

    在 Linux 上,您最好为要定位的发行版使用打包程序。

有趣的是,使用 Eclipse CDT 和 NSIS 在 Windows 上开发 C 和 C++ 软件非常容易,无需支付任何许可费用。

Eclipse CDT:http://eclipse.org/cdt/

入门指南:http://www.codeproject.com/KB/tips/CPP_Dev_eclipse_CDT.aspx

NSIS:http://nsis.sourceforge.net/Main_Page

请注意,如果您使用 Visual Studio,则还需要在 Release模式下进行编译并分发 Visual Studio CRT 或 .NET 运行时。这取决于您如何链接到编译器提供的标准库。

关于编译和分发 C 程序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8336372/

相关文章:

c - 基数 4 到基数 2 转换器

Makefile - 如何保存 .o 一个目录?

cygwin - 如何在 Msys 或 Cygwin 中将文件设置为只写或只读?

c - 由于 tgmath.h 和 complex.h,在最新的 Cygwin 中通过 GCC 编译 C 程序时出现问题

c - 为什么 sizeof 在 32 位进程的 linux 和 VS 上不同?即使是 "#pragma pack"和 "-fpack-struct"

c - 解析C语言中以逗号分隔的字符串 - Arduino

makefile:变量值中的尾随空格

qt - 将自定义命令添加到qmake中的现有目标

c - Cygwin 中的 Makefile 行为

c - 使用指针数组进行交换