在將它鏈接到應用程序的jemalloc
一種可能的方式「Getting-Started」部分是:鏈接上下文中的通用實現是什麼?
鏈接jemalloc到在構建時應用,但使用它作爲一個通用的malloc實現:
cc app.c -o app -L${JEMALLOC_PATH}/lib -Wl,-rpath,${JEMALLOC_PATH}/lib -ljemalloc
據我瞭解這個命令它會導致靜態和動態鏈接發生。爲什麼這樣做? 「......將它用作通用malloc實現」是什麼意思?
在將它鏈接到應用程序的jemalloc
一種可能的方式「Getting-Started」部分是:鏈接上下文中的通用實現是什麼?
鏈接jemalloc到在構建時應用,但使用它作爲一個通用的malloc實現:
cc app.c -o app -L${JEMALLOC_PATH}/lib -Wl,-rpath,${JEMALLOC_PATH}/lib -ljemalloc
據我瞭解這個命令它會導致靜態和動態鏈接發生。爲什麼這樣做? 「......將它用作通用malloc實現」是什麼意思?
這意味着jemalloc
將取代標準malloc
函數。下一個選項對比吧:
編譯jemalloc與API前綴(參見--with-jemalloc前綴配置選項),與上面在構建時jemalloc鏈接,但是從系統分配明顯使用jemalloc 。
在這種情況下,您可以調用類似jemalloc()
而不是malloc()
來使用它。
好的,我想我首先弄錯了。所以「通用實現」這個短語與連接完全沒有關係。另外我剛剛意識到實際上沒有靜態鏈接發生的權利? – ben
Rpath是一個典型的動態鏈接參數,將參數作爲動態庫在生成的二進制文件中的搜索路徑嵌入。 –