shared-libraries

    36熱度

    3回答

    我有一個共享庫,我希望鏈接使用GCC的可執行文件。共享庫的非標準名稱不是libNAME.so形式,所以我不能使用通常的-l選項。 (它恰巧也是一個Python擴展,因此沒有'lib'前綴) 我能夠將路徑傳遞到庫文件直接到鏈接命令行,但這會導致庫路徑爲硬編碼到可執行文件中。 例如: g++ -o build/bin/myapp build/bin/_mylib.so 有沒有辦法鏈接到這個庫,而不

    3熱度

    2回答

    我有一個C++庫和一個C++應用程序,試圖使用從庫中導出的函數和類。該庫建立良好,應用程序編譯但無法鏈接。這些錯誤我得到遵循這種形式: APP-源file.cpp :(文字+ 0x2fdb):未定義的引用`LIB命名空間:: GetStatusStr(INT)」 類在庫中好像被鏈接器解析得很好,但自由函數和導出的數據(如餘弦查找表)總是會導致上述錯誤。 我使用的是Ubuntu 8.04(Hardy

    15熱度

    2回答

    我對Linux的加載libfoo.so.1一個可執行文件(這是一個SONAME)作爲它的一個依賴(通過另一個共享庫)。它也鏈接到另一個系統庫,這反過來,鏈接到系統版本,libfoo.so.2。因此,均爲libfoo.so.1和libfoo.so.2在執行期間被加載,並且應該從版本爲1的庫調用函數的代碼最終會從具有版本2的較新系統庫調用(二進制不兼容)函數,因爲某些符號保留一樣。結果通常是堆棧粉碎和

    1熱度

    3回答

    我想在Windows上使用MSVC 6(retro!)構建一個共享庫(DLL),並且我需要解決一個特殊的鏈接問題。我的共享庫必須訪問一些全局狀態,由加載應用程序控制。 概括地說,我有什麼是這樣的: application.c: static int g_private_value; int use_private_value() { /* do something with g_pr

    2熱度

    3回答

    我在Fedora Linux機器上工作。 我有一大堆的二進制文件和庫,我安裝在我的主目錄下。 我想設置我的系統,所以安裝軟件的功能與我的相同,就好像root用戶在沒有前綴的情況下安裝軟件一樣。 我可以運行安裝在〜/ local/bin中的二進制文件,只需將該目錄添加到我的PATH變量中,但是如何鏈接到〜/ local/lib和〜/ local/lib64中的庫? 是否有類似於LD_LIBRARY_

    47熱度

    6回答

    我有兩個應用程序在tomcat/webapps文件夾下。 tomcat/webapps/App1 tomcat/webapps/App2 兩個應用程序共享相同的庫。其中存儲在例如tomcat/webapps/App1/WEB-INF/lib中。 兩個庫都在內存中加載兩次嗎? 我應該把這些共享庫放在tomcat/server/lib嗎?

    3熱度

    3回答

    我有一個應用程序,在啓動時將.so文件加載爲插件,使用dlopen() 構建環境在x86硬件上運行,但應用程序正在針對另一個平臺進行交叉編譯。 如果我可以(作爲自動化構建過程的一部分)執行檢查以確保在.so文件和應用程序的組合中沒有任何未解決的符號,而無需實際部署應用程序。 在我編寫腳本測試符號使用輸出nm之前,我想知道是否有人知道已經這樣做的實用程序? 編輯1:略有變化的說明 - 我不只是想在。

    1熱度

    1回答

    我目前正在開發一個項目,將許多Excel VBA驅動的工作簿轉換爲VSTO解決方案。所有的工作手冊都會共享一些類庫和第三方程序集,實際上大部分工作都是在類庫中完成的。我現在有這樣的文件夾結構。 Base Libraries Assemblies Workbooks Workbook1 Workbook2 每個工作簿都是自己的解決方案,工作簿

    1熱度

    3回答

    我正在用g ++ 3.3.4構建一個共享庫。因爲我越來越 ./BcdFile.RHEL70.so: undefined symbol: _ZNSt8_Rb_treeIjjSt9_IdentityIjESt4lessIjESaIjEE13insert_uniqueERKj 其中C++ filt的描述爲 std::_Rb_tree<unsigned int, unsigned int, std::