通过Visual Studio运行GCC

5
我一直在编写一个应用程�,它解�Visual Studio 2010解决方案,并�试使用GCC进行编译。
我在�建应用程�时,将其�行在标准�制�窗�中,没有出�任何问题(��忽略我的轻微GCC�兼容性😉)。
问题出�在当我在Visual Studio下执行此应用程�时,它能够正常�动,但是当它生�GCC�进程时,会报告以下错误:
cc1plus.exe: error while loading shared libraries: ?: cannot open shared object file: No such file or directory
这�常令人困惑,因为作为独立的�制�应用程��以正常工作。那么有人知��生了什么�?这个“?�库是什么?为什么它在�制�下工作而�是通过VStudio?
我��建应用程�内部转储了我的PATH�境��,它肯定包括我的cygwin / bin目录。它是�在此之�立�丢失?如�我�行cygwin bash shell,则/usr/bin在路径中。
那么�么�事?有人有任何想法�?

我的建议是:如果你只需要在Windows上使用GCC(而不需要POSIX),那么可以选择MinGW,例如从这里下载:http://mingw-w64.sourceforge.net/ 这是在Windows上运行的本地GCC(无需Cygwin或者如果你想要的话也可以使用Cygwin)。当然,如果Cygwin不是你的应用程序必需的一部分,那么你可能会有一个更简单的设置,不需要Cygwin层。 - rubenvb
@rubenvb:唉,这必须使用cygwin :( - Goz
如果问题是什么,那么 Rozuur 可以给出答案。然而如何解决就是另外一个问题了。你需要确保从 Cygwin 环境中调用 cygwin 工具。怎么做呢?我认为从 Cywgin 的 (ba)sh.exe 中调用它们可能会起作用,但也可能有其他/更好的方法。 - rubenvb
2个回答

5

我没有用Visual Studio尝试过这个问题,也不确定这是否能解决你的问题。但是在我使用Windows和Emacs编译一个使用Cygwin的gcc的程序时,遇到了类似的问题。因为Cygwin的gcc.exe不是可执行文件,而是指向实际可执行文件(可能是gcc-3.exe或gcc-4.exe,具体取决于你安装了哪个版本)的符号链接。在BASH shell中,这些符号链接很容易被解析,但在cmd.exe中则不行。


这有很大的可能性实际上是一个问题! - rubenvb
在cmd.exe中运行cygwin时,这是一个普遍的问题。 - Rozuur
@Rozuur:谢谢,这似乎就是问题所在。真麻烦。我会再运行几个测试以确保,但我怀疑你将从我这里获得额外的315分 :) - Goz
@Goz,希望这是问题的原因 :) - Rozuur
@Rozuur:是的,那似乎就是我的问题。谢谢! :) - Goz

3

否则,Sysinternals 的 depends.exe 也非常有用。 - Benoit
如果你在处理路径等问题时,使用Depends工具往往难以准确显示出错原因,而ProcMon则可以显示出尝试加载的确切路径和未能加载的文件。因此,这个说法是正确的。 - Len Holgate
2
信息提示:depends.exe 不是 Sysinternals 工具。 - David Heffernan

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接