簡體   English   中英

加載共享庫時出錯:libsystemc-2.3.0.so

[英]Error while loading shared libraries: libsystemc-2.3.0.so

我是 Linux 的新用戶,我正在嘗試在我的機器(Fedora 16)上安裝systemc-2.3.0庫。 我非常仔細地遵循了庫的安裝文件中提到的每條說明,但是當我嘗試使用 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;
}

錯誤輸出是:

/home/vivek/workspace/TestSystemC/Debug/TestSystemC:加載共享庫時出錯:libsystemc-2.3.0.so:無法打開共享對象文件:沒有這樣的文件或目錄

任何幫助將不勝感激。 由於我不是 Linux 專家,請以詳細的方式(逐步)解釋您的建議。

謝謝你。

這是動態鏈接的環境設置問題,因為共享庫安裝在系統默認庫目錄之外。 執行二進制文件時,裝入程序無法找到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

是的! 實際上,對於報告的所有此類錯誤,缺少的是用戶尚未或忘記設置LD_LIBRARY_PATH

您可以在eclipse 鏈接器中設置->其他-> -Wl,-rpath,your_lib_path

我在~/.profile的末尾添加了兩行,如下所示:

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

如果這樣做不起作用,您可以嘗試在lib->lib-linux64/ systemc-2.3.0的頂級目錄中添加兩個軟鏈接(即lib->lib-linux64/lib-linux -> lib-linux lib->lib-linux64/ lib-linux -> lib-linux )。例如,我的路徑是/usr/local/systemc-2.3.0/ )。 相應的命令如下

(將當前目錄更改為$ SYSTEMC_HOME目錄):

$ln -s /usr/local/systemc-2.3.0 lib
$ln -s /usr/local/systemc-2.3.0  lib-linux

也許lib-linux64支持64位操作系統,而lib或lib-> linux支持32位操作系統。

嘗試通過訪問 libsystemc-2.3.1.so 所在的目錄將 libsystemc-2.3.0.so 移動到默認庫目錄,打開終端並運行: sudo cp libsystemc-2.3.0.so /lib這在我的情況

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM