dynamic-linking

    2熱度

    1回答

    我想將我的程序鏈接到libGL.so庫,但我的可執行文件也以libnvidia-tls.so.331.62和libnvidia-glcore.so.331.62引用結束。即使NVidia驅動程序將被要求執行我的程序(我使用CUDA),但我不希望它依賴於特定版本的庫(驅動程序)。 這是一個簡單的例子;源: #include <GL/glew.h> int main(int argc, char*

    0熱度

    1回答

    我剛纔試圖編譯靜態libboost系統庫我的小測試應用程序,例如: $ g++ -I ~/lib/boost-1.56/include main.cpp -o main -L~/lib/boost-1.56/lib/ -static -lboost_system 在此之前,我已經編譯沒有靜態庫: $ g++ -I ~/lib/boost-1.56/include main.cpp -o mai

    1熱度

    1回答

    我試圖創建一個node.js加載項,它是一個簡單的包裝來訪問Boost庫項目中的perl正則表達式。 我正在運行OSX 10.9.2,而且我也不是一個C++開發人員,所以這個工具並不熟悉。 我的項目如下所示 boost.cc #include <node.h> #include <v8.h> #include <boost/regex.hpp> using namespace v8;

    1熱度

    2回答

    我反覆遇到沒有找到的庫的問題。 在我的.bashrc我: LD_LIBRARY_PATH= LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/lib1 LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/lib2 LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/lib3 export LD_LIBRARY_PATH=$LD_LIBRA

    0熱度

    1回答

    我在makefile文件有-lelf選擇的,我想知道:它是怎樣選擇的libelf.so版本鏈接(例如libelf.so.0或libelf.so.1)?我的系統中有一個libelf.so.1以及一個libelf.so,它鏈接到libelf.so.1。當我編譯代碼時,一切都很好,但是,當我嘗試運行二進制文件時,它會報告:「找不到libelf.so.0」。任何指導解決這個問題?提前致謝。

    1熱度

    1回答

    在Xcode中5,我創建使用Xcode的「遊戲模板」遊戲試玩,它鏈接的框架是這樣的: ​​ 它使用SpriteKit的代碼,但如果我刪除SpriteKit.framework,它也能工作。我也使用CoreMotion,並發現它沒有鏈接CoreMotion框架無法正常工作。 然後,我創建使用Xcode的6遊戲演示,它現在不連接任何框架: 但它也適用。 所以沒有必要鏈接框架? 我主要使用Xcode 5

    2熱度

    1回答

    這主要是出於好奇。我知道如果我用我自己定義的庫函數LD_PRELOAD我自己的庫,可以替換庫函數的定義(?)。我可以爲可執行文件的主要方法執行相同的操作嗎? 也就是說,沒有重建可執行文件,我可以對運行時做些什麼,以便調用不同的main()方法嗎?

    -1熱度

    1回答

    有人可以解釋鏈接器標誌「-lm」的含義。哪個圖書館由字母「m」表示。如果「m」不是庫名稱,那麼它是什麼。

    2熱度

    1回答

    在低內存的Linux系統上,我有一個由單個可執行文件和多個共享庫組成的項目。這些庫不與其他可執行文件共享,並且任何時候只有一個可執行文件實例正在運行。有人告訴我,這種設置允許共享庫在未處於活動狀態時從內存中卸載。它是否正確? 在我看來,僅僅將整個項目構建爲一個靜態二進制文件(當然不包括系統共享庫)會更有意義,因爲每個函數只有一個副本在內存中處於活動狀態。 這兩種方法有什麼不同嗎?

    1熱度

    1回答

    我在嘗試使用nodejs-ffi模塊加載C 32位DLL時遇到了一些問題。這是我的代碼: 運行時,節點拋出上Dynanic_library.js的錯誤:74動態鏈接錯誤 var ffi = require('ffi'); var ref = require('ref'); var path = require('path'); import idatabase = require('./I