2014-12-27 5 views
0

В разделе «Getting-Started» из jemalloc один из возможных способов связать его в приложение является:Что такое общая реализация в контексте ссылки?

Ссылка jemalloc в приложение во время сборки, но и использовать его в качестве родовой реализации таНоса:

cc app.c -o app -L${JEMALLOC_PATH}/lib -Wl,-rpath,${JEMALLOC_PATH}/lib -ljemalloc

Насколько я понимаю, эта команда приведет к возникновению как статической, так и динамической связи. Почему это делается? Что означает «использовать его как универсальную реализацию malloc»?

+0

Rpath - типичный динамический связующий параметр, вставляющий аргумент в качестве пути поиска динамической библиотеки внутри сгенерированного двоичного файла. –

ответ

2

Это означает, что jemalloc заменит стандартную функцию malloc. Контрастный его со следующей опцией:

Compile jemalloc с API префиксом (см опции --with-jemalloc-приставку Конфигурировать), связь с jemalloc во время сборки, как описано выше, но использовать jemalloc отчетливо из системы распределителя ,

В этом случае, вы могли бы назвать что-то вроде jemalloc() вместо malloc() использовать его.

+0

Хорошо, я думаю, что я понял, что это совершенно неправильно. Таким образом, фраза «общая реализация» не имеет ничего общего с привязкой. Кроме того, я просто понял, что на самом деле не происходит никакого статического соединения? – ben

Смежные вопросы