我在 Windows 7 下使用 Eclipse Juno for c/c++。我创建了一个共享库项目和一个可执行项目。我通过以下方式在可执行项目中添加了共享库项目作为参考:
可执行项目的属性 -> C/C++ 常规 -> 路径和符号 -> 参考 -> 检查共享库项目
所有这些在编译时都很好用,我可以在可执行项目中包含我的共享库项目的类,并使用它等等。
但是,当我尝试在 Eclipse 中运行可执行项目时,我什么也得不到。没有错误,没有控制台输出。经过一番谷歌搜索后,我在这里发现了一个类似的问题:
http://www.eclipse.org/forums/index.php/m/650331/
显然,如上所述,将共享库项目添加到 Eclipse 中的可执行项目中,并不会在运行时在 Eclipse 中将 dll 文件添加到可执行 (.exe) 文件的 PATH 中。类比 Eclipse for Java:如果你有一个 Java JAR 项目 A 和另一个 Java JAR 项目 B,通过在 Eclipse 中从 B 到 A 的引用,当在 Eclipse 中运行项目 A 时,B 的编译后的 jar 文件将添加到 A 的类路径中. 我认为它与 Eclipse for C/C++ 类似,但显然不是。
果然,如果我手动把.exe文件和.dll文件放在同一个文件夹下,运行.exe,一切正常。此外,如果我将 .dll 文件复制到 Eclipse 的可执行项目的编译目录中,我可以从 Eclipse 运行可执行项目并且没问题。
我的问题是,当我告诉它运行可执行项目时,有没有办法让 Eclipse 将该共享库项目的 dll 文件添加到运行时?我在上面链接的帖子中讨论的解决方案是将分片库项目的编译目录手动添加到可执行项目的 Eclipse 运行配置中,即将其添加到那里的 PATH 变量中。但我发现这很麻烦而且不便携,如果 Eclipse 管理这两个项目,它应该能够将所有必要的东西传递给运行时。