在cmake中管理不同版本的jemalloc

问题描述 投票:0回答:1

我编译了两个版本的 jemalloc,一个是发布版本,另一个是启用了分析功能的版本(--enable-prof)。带分析的版本配置有后缀(--suffix="-prof")。 结果,系统中安装了两个库:libjemalloc.so和libjemalloc-prof.so 你能告诉我如何在 cmake 中选择特定的库吗?

c++ cmake jemalloc
1个回答
0
投票

在 CMakeLists.txt 中,您可以添加

option
来启用分析,然后链接到 jemalloc-prof(如果已启用),否则链接到 jemalloc。在链接之前,请确保您正在调用
find_library
find_package
中合适的那个。如下所示:

# ...
option(ENABLE_JEMALLOC_PROFILING "Enable profiling for Jemalloc" FALSE)

# ...

if (ENABLE_JEMALLOC_PROFILING)
    find_library(JEMALLOC_PROF jemalloc-prof HINTS PATH_HINT1 PATH_HINT2 REQUIRED)
    target_link_libraries(YOUR_TARGET PRIVATE jemalloc-prof)
else()
    find_library(JEMALLOC jemalloc HINTS PATH_HINT1 PATH_HINT2 REQUIRED)
    target_link_libraries(YOUR_TARGET PRIVATE jemalloc)
endif()
© www.soinside.com 2019 - 2024. All rights reserved.