加载共享库时出错:libsystemc-2.3.0.so

Sil*_*fer 2 c++ eclipse systemc

我是Linux的新用户,我正在尝试systemc-2.3.0在计算机上安装库(Fedora 16)。我已经非常仔细地遵循了库的INSTALL文件中提到的所有说明,但是当我尝试使用ECLIPSE运行简单程序时遇到错误。我已经正确链接了ECLIPSE中的所有库,但是仍然出现错误。

该程序如下:

#include <systemc.h>

using namespace std;

int sc_main(int argc, char * argv[])
{
    cout << "hello world" << endl;

    for(int i=0; i<argc; i++)
        cout << argv[i] << " ";

    cout << endl;
    return 0;
}
Run Code Online (Sandbox Code Playgroud)

错误输出为:

/ home / vivek / workspace / TestSystemC / Debug / TestSystemC:加载共享库时出错:libsystemc-2.3.0.so:无法打开共享库文件:没有此类文件或目录

任何帮助将不胜感激。由于我不是Linux专家,请以详尽的方式(逐步)解释您的建议。

谢谢。

jcl*_*lin 5

这是动态链接的环境设置问题,因为共享库安装在系统默认库目录之外。执行二进制文件时,装入程序无法找到libsystemc-2.3.0.so。

两种解决方案。

  1. 设置您的LD_LIBRARY_PATH。

    export LD_LIBRARY_PATH=/usr/local/systemc-2.3.0/lib-linux64:$LD_LIBRARY_PATH

    或者,如果您的默认LD_LIBRARY_PATH为空

    export LD_LIBRARY_PATH=/usr/local/systemc-2.3.0/lib-linux64

  2. 链接二进制文件时,将rpath添加到可执行文件。它会在二进制文件中添加一个条目,并提示加载程序搜索其他路径。

    g++ -o TestSystemC ...your c++ files... -L/usr/local/systemc-2.3.0/lib-linux64 -lsystemc-2.3.0 -Wl,-rpath,/usr/local/systemc-2.3.0/lib-linux64