我想知道malloc如何鏈接到主程序。基本上我有一個使用多個靜態和動態庫的程序。我將所有這些包含在我的makefile中,使用選項「-llibName1 -llibName2" 。 TCmalloc的文檔說,我們可以簡單地通過調用「LD_PRELOAD =/usr/lib64/libtcmalloc.so」來覆蓋我們的malloc。我無法理解tcamlloc如何被調用到所有這些靜態和動態庫。 tcmalloc也鏈接到STL庫和C++的新/刪除操作? 任何人都可以請給任何見解。如何將tcamalloc鏈接到主程序
0
A
回答
0
「LD_PRELOAD =/usr/lib64/libtcmalloc.so」指示加載程序在解析程序外部的符號時使用libtcmalloc.so,因爲libtcmalloc.so定義了一個名爲「malloc」的符號,這是您的程序將使用的版本。
如果您省略了LD_PRELOAD行,glibc.so(或您系統上的任何C庫)將成爲第一個定義名爲「malloc」的符號的共享庫。要注意的是,如果你連接一個靜態庫,它定義了一個名爲「malloc」的符號(並使用合適的參數等),或者另一個共享庫被加載並定義了一個名爲「malloc」的符號,你的程序將嘗試使用該版本的malloc。
無論如何,這是一般的想法;實際發生的事情非常有趣,我將不得不指導http://en.wikipedia.org/wiki/Dynamic_linker作爲更多信息的起點。
相關問題
- 1. 如何將文件鏈接到主頁?
- 2. 如何將我的程序鏈接到另一個程序?
- 3. 如何將主菜單鏈接鏈接到Joomla中的子菜單鏈接?
- 4. 將iPhone控制應用程序鏈接到主iPad應用程序
- 5. 將球拍程序鏈接到Fortran庫
- 6. 將DLL鏈接到C++程序中QTCreator
- 7. 將OpenSSL庫鏈接到程序
- 8. 如何將科爾多瓦應用程序鏈接到App Store?
- 9. 如何將ABAP Dynpro屏幕元素鏈接到程序變量?
- 10. 如何將靜態Stasm庫鏈接到我的程序?
- 11. 如何使用Windows將Meschach庫鏈接到C程序
- 12. 如何將C++庫鏈接到Objective-C程序
- 13. 如何將C++文件鏈接到C程序?
- 14. 如何將應用程序類鏈接到F腳本
- 15. 如何將Google日曆鏈接到應用程序?
- 16. 如何將系統日期鏈接到應用程序?
- 17. 如何將彙編文件(.s文件)鏈接到C程序
- 18. 如何將內核函數鏈接到用戶空間程序?
- 19. 如何將預安裝的應用程序鏈接到Android Market?
- 20. 如何將鏈接拖到Windows下的PyGTK應用程序中?
- 21. 如何將我的應用程序鏈接到iphone日曆
- 22. 如何將應用程序鏈接到Web數據庫?
- 23. 如何將PDCurses鏈接到Windows上的C++應用程序?
- 24. JCL如何將PRTOUTA,...等鏈接到Cobol程序?
- 25. 將程序鏈接到靜態庫,將其自身鏈接到另一個庫
- 26. Rails應用程序:鏈接到Devise視圖路由到主頁。
- 27. 如何超鏈接到標籤頁而不是主頁鏈接
- 28. 將我的Logo鏈接到主頁html
- 29. 將測試類鏈接到其主類
- 30. 將fortran子程序鏈接到C++程序時出錯