我正在尝试boost::stacktrace通过 CMake将库添加到我的项目中。CMake 很好地找到了所有必需的库,但是当我调用boost::stacktrace::stacktrace()将堆栈信息打印到其中时std::cout- 它给了我以下错误:
undefined reference to 'dladdr'
Run Code Online (Sandbox Code Playgroud)
我已经尝试将-ldlcompile 标志添加到CMAKE_CXX_FLAGScompile 标志中,看看它是否有帮助,但它不起作用。我知道我错过了一些必需的软件包,但我不知道是哪个。也许你可以给我建议。
这是一些代码:
CMakeLists.txt
#-------------------------------------------------------------------#
# cmake version & project name
cmake_minimum_required(VERSION 3.10)
project(stack_trace_exmpl)
#-------------------------------------------------------------------#
# project flags config
set(CMAKE_CXX_STANDARD 17)
set(CMAKE_C_STANDARD 11)
set(CMAKE_CXX_FLAGS_DEBUG "${CMAKE_CXX_FLAGS_DEBUG} -g3 -pthread")
set(CMAKE_C_FLAGS_DEBUG "-g3")
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -Wall -pthread -ldl")
set(CMAKE_C_FLAGS "-Wall")
set(BOOST_ROOT "/opt/Boost_1_68_0/")
#-------------------------------------------------------------------#
# find Boost libs
set(Boost_USE_STATIC_LIBS OFF)
set(Boost_USE_MULTITHREADED ON)
set(Boost_USE_STATIC_RUNTIME OFF)
find_package(
Boost 1.68.0
COMPONENTS REQUIRED …Run Code Online (Sandbox Code Playgroud)