【问题标题】:Running GCC through Visual studio通过 Visual Studio 运行 GCC
【发布时间】:2011-01-20 19:43:34
【问题描述】:

我一直在编写一个解析 Visual Studio 2010 解决方案并尝试使用 GCC 编译它的应用程序。

在我构建应用程序时,我让它在标准控制台窗口中运行,我没有遇到任何问题(前提是你忽略了我轻微的 GCC 不兼容性;))。

问题在于,当我在 Visual Studio 下执行此应用程序时,它可以正常启动,但是当它生成 GCC 子进程时,它会报告:

cc1plus.exe:加载共享库时出错:?:无法打开共享对象文件:没有这样的文件或目录

这非常令人困惑,因为它可以作为独立的控制台应用程序正常工作。那么有人知道发生了什么吗?这是什么 ”?”图书馆?为什么在控制台下能用,VStudio不能用?

我从构建应用程序中转储了我的 PATH 环境变量,它肯定包括我的 cygwin/bin 目录。在此之后它会立即丢失吗?如果我运行 cygwin bash shell,那么 /usr/bin 就在路径中。

那是什么?有人有什么想法吗?

【问题讨论】:

  • 我的两分钱:如果您在 Windows 上只需要 GCC(并且没有 POSIXness),请选择 MinGW,例如从这里:mingw-w64.sourceforge.net 这是在 Windows 上运行的本机 GCC(没有,或者如果你想用 Cygwin)。如果 Cygwin 层当然不是您应用程序的必要部分,您可能会有更简单的设置。
  • @rubenvb: 唉,它必须是 cygwin :(
  • 那么 Rozuur 就有了问题所在的答案。不幸的是,如何解决它是另一回事。您需要确保从 Cygwin 环境调用 cygwin 工具。如何?我认为从 Cywgin 的 (ba)sh.exe 调用它们会起作用,但可能还有其他/更好的方法。

标签: c++ visual-studio-2010 gcc msbuild cygwin


【解决方案1】:

我没有用 Visual Studio 尝试过这个问题,我不确定这是否能解决你的问题,但是在使用 emacs 的 windows 中尝试使用 cygwin 的 gcc 编译程序时遇到了类似的问题。因为 cygwin 的 gcc.exe 不是可执行文件,而是实际可执行文件的一种符号链接(根据您安装的文件,它是 gcc-3.exe 或 gcc-4.exe)。在 BASH shell 中,这些符号链接很容易解析,而在 cmd.exe 中则不然。

【讨论】:

  • 这很有可能真的是个问题!
  • 这是 cygwin 从 cmd.exe 运行时的一般问题。
  • @Rozuur:干杯这确实是个问题。多么痛苦。我将再进行一些测试以确保,但我怀疑你会从我这里再获得 315 分 :)
  • @Goz 我希望这是问题:)
  • @Rozuur:是的,这似乎是我的问题。谢谢! :)
【解决方案2】:

运行SysInternals ProcMon,看看哪些文件加载​​失败?

【讨论】:

  • 不然的话,sysinternalsdepends.exe也能大用。
  • 是的,但是如果您正在玩弄路径以及通常很难获得的任何内容加载...
  • 信息点:depends.exe 不是 Sysinternals 工具。
猜你喜欢
  • 1970-01-01
  • 2012-04-11
  • 1970-01-01
  • 1970-01-01
  • 2010-09-17
  • 2018-06-06
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多