我是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;
}

错误输出为:



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

谢谢。

最佳答案

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

两种解决方案。

  • 设置您的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
  • 在链接二进制文件时将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
  • 09-27 18:04