【问题标题】:how to compile c++ files with cygwin on windows 7如何在 Windows 7 上使用 cygwin 编译 c++ 文件
【发布时间】:2010-12-16 23:52:33
【问题描述】:

我已经安装了 cygwin。但是当我尝试编译一个 c++ 文件时,它给出了以下错误:

/usr/lib/gcc/i686-pc-cygwin/4.3.4/cc1plus.exe: error while loading shared libraries: cygmpfr-1.dll: cannot open shared object file: No such file or directory

我在 lib 文件夹中检查了没有名为 cygmpfr-1.dll 的库。那么是不是我必须将该dll放在lib文件夹中。我试图搜索 dll 但找不到这个 dll 以便我可以下载。我只是 C++ 的初学者。我也尝试在 netbeans 中设置 cygwin 支持,但是如果我尝试运行给出的示例文件,它也会引发上述错误。

谁能给我一个线索?

【问题讨论】:

  • 是的,它似乎是重复的,但我添加了 libmpfr1 。但是现在出现另一个错误,例如 /usr/lib/gcc/i686-pc-cygwin/4.3.4/../../../../i686-pc-cygwin/bin/ld: cannot find -lstdc++
  • 我同意 Cheeso。当您显然是初学者时,为什么要尝试为 cygwin 编译。这不是微不足道的。您应该安装 Kubuntu 的副本。在 Linux 上学习 C++ 比在 Windows 上容易得多。另外,这与gdb,netbeans有什么关系?这是 C 还是 C++?如果是 C++,为什么要使用 gcc?
  • 看起来您正在编译 C++ - 是否应该删除“C”标签?另外,您使用的是哪个编译器?什么命令行?
  • 我所尝试的只是在 Netbeans 中配置 C++ 支持,以便像我为 java 所做的那样轻松编写、编译和执行程序。我已经从 cygwin 站点下载了所有内容并设置了路径,我可以看到 c 和 c++ 编译器的版本号,当我尝试编译任何 C 或 C++ 程序时,错误是相同的。没有区别。无论如何我已经安装了 Visual C++,所以感谢大家的帮助!

标签: c++ dll cygwin


【解决方案1】:

你需要通过http://cygwin.com/setup.exe安装gcc4-g++包 你只安装了 gcc4。

这也将安装您缺少的依赖项。

【讨论】:

【解决方案2】:

如果您是 C/C++ 的初学者,并且您正在运行 Windows,那么为什么不采取简单的方法并获取 Visual-C++ Express,这是 Microsoft 为 Windows 提供的免费 IDE。

它提供了一个 GUI IDE(集成开发环境),但如果您更喜欢文本编辑器和命令行工具(编译器、调试器等),如果您安装了 Visual-C++ Express,您也可以使用这些工具。

还有tutorials 和帮助您入门的课程。


另一方面,如果您真的想专注于 Linux 上的 C++,那么您可能应该立即卸载 Windows 7。

【讨论】:

  • 确实 - C 甚至 C++ 开发在 Windows 上都很痛苦。 (Visual Studio 仍然只支持 C89!甚至没有 stdtypes.h!)如果您想在“理想”环境中学习 C 和 C++,请使用 Linux。 (.NET 在 Windows 中如此受欢迎是有原因的,它是 win32 的一个很棒的外观)。
  • 这是一个答案 - 提出问题的人显然被卡住了,至少在问题得到澄清之前,这是可以提出的最佳建议之一。 (了解使用的语言是使用 Cygwin 编译代码的先决条件 - 最初问题与 netbeans 相关!)
  • 我不同意 C/C++ 开发在 Windows 上是痛苦的,至少不会比在任何平台上开发 C/C++ 更痛苦。它可以工作,很简单,您可以使用 GUI 或 makefile,还有调试器和链接器以及依赖检查器等等。有用。与其说“这很痛苦”,我想说的是,如果您要在 Windows 上开发 C/C++,并且您是初学者,那么最好的起点是 Visual-C++ Express。
  • Cheeso:虽然它有效,但我不确定我是否会相信它是“直截了当的”。使用 MFC 或任何基于 win32 的 API 往往会鼓励 C-like-C++,这很痛苦。此外,在这个时代,我们真的需要为每个不同版本的 Visual Studio 提供不兼容的 libc 吗?每个可能链接到我们应用程序的 .dll 都“应该”使用完全相同的 libc,这是一场噩梦!最后,如果 OP 确实在询问 C 而不是 C++,那么它痛苦的,因为它很古老!它仍然只支持C89,完全不支持C99!
  • 如果他正在学习 C 和 C++,那么他不必关心 MFC 或任何其他特定于 Windows 的软件包。他可以以直接的方式编写本机 C/C++ 代码。至于 libc 版本控制问题,它一直是一场噩梦,但那里有一个直截了当的答案。
【解决方案3】:

我也遇到过类似的问题,而且我不是初学者。尝试使用 cygwin 安装程序,并在其中搜索所有版本的 gmp。一般有32位和64位版本。检查您看到的所有内容并更新您的安装。希望这可以帮助。您可以在 Internet 上找到其中一些 dll,但不是您要查找的那个。

【讨论】:

    猜你喜欢
    • 2014-03-19
    • 1970-01-01
    • 2011-04-12
    • 2012-02-11
    • 2012-01-01
    • 1970-01-01
    • 2017-09-19
    • 1970-01-01
    • 2013-08-13
    相关资源
    最近更新 更多