c++ - 如何从终端运行用 eclipse 编写的 c++ 程序

标签 c++ linux eclipse terminal

我正在使用 Ubuntu,并且我已经在 Eclipse Neon 中编写了 C++ 代码。 我的工作区包含 4 个项目。主项目称为 BaseCppProjectRun(它包含 main.cpp 文件),我还有其他具有这些名称的项目:Encoders、frmwrk、NetworkLayer - BaseCppProjectRun 使用其中的每一个。

如果我直接从 Eclipse 运行我的程序,一切正常。 但我想从终端运行我的程序 - 但我不能。 因为当我尝试像这样运行我的程序时:

root@ubuntu:/builds/BaseCppProject/BaseCppProjectRun# ./Debug/BaseCppProjectRun

我收到此错误:

./Debug/BaseCppProjectRun: error while loading shared libraries: libfrmwrk.so: cannot open shared object file: No such file or directory

正如我之前所说,如果我直接从 Eclipse 运行它,一切都会正常。

如何从终端运行我的程序?

最佳答案

如果你不把 libfrmwrk.so 放在它通常看起来的地方,也不告诉它在哪里可以找到它,Linux 应该如何知道在哪里可以找到它。

Eclipse 似乎设置了运行时链接器查找的路径,以便在加载程序时,运行时链接器知道在哪里可以找到 libfrmwrk.so 等。

你要么必须

  • 安装这些库 (.so),以便在默认位置找到它们,或者
  • 设置LD_LIBRARY_PATH以包含要查看的所有文件夹。

我已经很久没有使用 Eclipse CDT 了,但您现在可能可以导出一些项目格式,以便轻松安装。

另一件事:您似乎正在运行仍在以 root 身份调试的软件:这是一个糟糕的主意,如果可以避免,就避免它。

关于c++ - 如何从终端运行用 eclipse 编写的 c++ 程序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50525601/

相关文章:

c++ - 派生类的原始类型数据成员能否用作其基构造函数的参数?

C++/SQLite - 多进程数据库访问

linux - `make V=99` 没有显示编译命令

java - <ClassName> 扩展非 API 类型 <SuperclassName>

eclipse - STS上的Grails:如何同时运行> 1个Grails应用程序

java - 在网站上运行 Java 小程序

c++ - OpenMP:用锁替换临界区

c++ - 在 C++ 中删除列表会导致崩溃

c - 非全局使用的 getopt (C) 错误?

mysql - 如果 2 个表具有相同的数据,我如何比较?