Программы на C++. Форум разработчиков
Anonymous
Cmake: target_link_libraries Используйте статическую библиотеку, не общую
Сообщение
Anonymous » 24 сен 2025, 11:57
Можно ли сказать Cmake связаться с
статической библиотекой вместо
shared ?
Код: Выделить всё
set(CMAKE_FIND_LIBRARY_SUFFIXES .a ${CMAKE_FIND_LIBRARY_SUFFIXES})
< /code>
Позже я добавляю двоичный файл и говорю ему ссылку на Tcmalloc < /code> в режиме выпуска: < /p>
target_link_libraries(${BIN_NAME} optimized tcmalloc_minimal)
< /code>
Полученные ссылки Makefile Aginst общей версии tcmalloc < /code>: < /p>
$ make VERBOSE=1 | grep tcmalloc
/usr/bin/c++ ... -Wl,-Bdynamic ltcmalloc_minimal
< /code>
Дополнительное доказательство: < /p>
$ ldd app
...
libtcmalloc_minimal.so.4 => /usr/local/lib/libtcmalloc_minimal.so.4 (0x00007eff89733000)
...
< /code>
Существуют как статические, так и общие версии tcmalloc: < /p>
$ ls -1 /usr/local/lib/libtcmalloc_minimal*
/usr/local/lib/libtcmalloc_minimal.a
/usr/local/lib/libtcmalloc_minimal_debug.a
/usr/local/lib/libtcmalloc_minimal_debug.la
/usr/local/lib/libtcmalloc_minimal_debug.so
/usr/local/lib/libtcmalloc_minimal_debug.so.4
/usr/local/lib/libtcmalloc_minimal_debug.so.4.2.6
/usr/local/lib/libtcmalloc_minimal.la
/usr/local/lib/libtcmalloc_minimal.so
/usr/local/lib/libtcmalloc_minimal.so.4
/usr/local/lib/libtcmalloc_minimal.so.4.2.6
Вопрос:
Как я могу настроить Cmake для ссылки на статическую версию tcmalloc ?
Подробнее здесь:
https://stackoverflow.com/questions/367 ... not-shared
1758704241
Anonymous
Можно ли сказать Cmake связаться с [b] статической библиотекой [/b] вместо [b] shared [/b]?[code]set(CMAKE_FIND_LIBRARY_SUFFIXES .a ${CMAKE_FIND_LIBRARY_SUFFIXES}) < /code> Позже я добавляю двоичный файл и говорю ему ссылку на Tcmalloc < /code> в режиме выпуска: < /p> target_link_libraries(${BIN_NAME} optimized tcmalloc_minimal) < /code> Полученные ссылки Makefile Aginst общей версии tcmalloc < /code>: < /p> $ make VERBOSE=1 | grep tcmalloc /usr/bin/c++ ... -Wl,-Bdynamic ltcmalloc_minimal < /code> Дополнительное доказательство: < /p> $ ldd app ... libtcmalloc_minimal.so.4 => /usr/local/lib/libtcmalloc_minimal.so.4 (0x00007eff89733000) ... < /code> Существуют как статические, так и общие версии tcmalloc: < /p> $ ls -1 /usr/local/lib/libtcmalloc_minimal* /usr/local/lib/libtcmalloc_minimal.a /usr/local/lib/libtcmalloc_minimal_debug.a /usr/local/lib/libtcmalloc_minimal_debug.la /usr/local/lib/libtcmalloc_minimal_debug.so /usr/local/lib/libtcmalloc_minimal_debug.so.4 /usr/local/lib/libtcmalloc_minimal_debug.so.4.2.6 /usr/local/lib/libtcmalloc_minimal.la /usr/local/lib/libtcmalloc_minimal.so /usr/local/lib/libtcmalloc_minimal.so.4 /usr/local/lib/libtcmalloc_minimal.so.4.2.6 [/code] [b] Вопрос: [/b] Как я могу настроить Cmake для ссылки на статическую версию tcmalloc ? Подробнее здесь: [url]https://stackoverflow.com/questions/36754160/cmake-target-link-libraries-use-static-library-not-shared[/url]