2010-12-10 184 views
1

我最近走出了黑暗时代,并将我的GCC从3.4.4改为4.5.0与Cygwin(我在Windows上使用Netbeans 6.8以备将来参考)。我尝试通过它运行一个简单的程序来尝试测试新的编译器。但运行失败,理由是NetBeans“找不到-lstdC++”。GCC 4.5.0 ..编译期间链接错误?

有趣。

我看在...

C:\ cygwin的\ LIB \ GCC \ i686的-PC-cygwin的\ 4.5.0

...其中的libstdC++一个的libstdC++。dll.a的libstdC++。LAlibsupC++。一个,和libsupC++ 1a中应该是(他们在3.4.4文件夹点),而且他们没有那里。我也注意到别的东西:有一个4.3.4的文件夹中...

C:\ cygwin的\ LIB \ GCC \ i686的-PC-cygwin的

其中包含这些确切的文件!好。所以我将它们复制到4.5.0文件夹并尝试再次运行该程序。这一次我让其他两个错误:

编译/调试/ Cygwin的窗口/ extract_fail_operations.o:/usr/lib/gcc/i686-pc-cygwin/4.5.0/include/C++ /位/stl_list.h:1435:未定义的引用`的std :: _ List_node_base :: _ M_hook(STD :: _ List_node_base *)”

和:

编译/调试/ Cygwin的窗口/ extract_fail_operations。 o:/usr/lib/gcc/i686-pc-cygwin/4.5.0/include/C++/bits/stl_list.h:1451:对`std :: _List_node_base :: _ M_unhook()'的未定义引用

在这一点上,我认为我是我的头,决定在复制和粘贴任何更多的文件之前寻求帮助。如果有人能告诉我如何使这个工作,我会非常感激。

(如果有任何解决方案涉及命令行,请注意,我不太熟悉它...您可能需要提供额外的细节,您不需要其他SO用户!)

编辑:的PATH变量如下:

C:\ Program Files文件\ SSH通信安全\ SSH安全壳; C:\ Program Files文件\ CVSNT \; C:\ cygwin的\斌

是的,Cy安装gwin是最新的网站。

+1

我的猜测是,由于某种原因,您的新安装不在您的路径中。右键点击我的电脑,拉起属性,并在高级应该有一个环境变量列表。与他们更新您的文章。另外,您确实从cygwin网站获得了更新的软件包,对不对? – 2010-12-10 16:47:03

+0

好的。原始帖子已更新,请求已满足。 – Kevin 2010-12-10 17:16:39

回答

1

您需要安装libstdC++ 6-devel的4.5.0版本。

+0

这对我有用。使用Cygwin的setup.exe升级gcc软件包后,我遇到了同样的问题。 – amolbk 2011-01-13 06:47:51