对于共享库,您可以使用GetPrerequisites标准模块来测试库是否依赖于libstc ++或libc ++.
例如,以下代码测试是否program_options针对libstc ++或libc ++编译了boost的库:
set (_library "/usr/local/lib/libboost_program_options.dylib")
set (_prequesites "")
set (_exclude_system FALSE)
set (_recurse FALSE)
set (_exePath "")
set (_searchDirs "")
get_prerequisites(${_library} _prequesites ${_exclude_system} ${_recurse} "${_exePath}" "${_searchDirs}")
if (_prequesites MATCHES "/libstdc\\+\\+")
message("using libstc++")
elseif (_prequesites MATCHES "/libc\\+\\+")
message("using libc++")
else()
message("using neither libstc++ nor libc++")
endif()
Run Code Online (Sandbox Code Playgroud)
对于静态库,您可能不得不求助于nm在库文件上运行以确定外部符号,然后__gnu_在输出中搜索特征字符串.
| 归档时间: |
|
| 查看次数: |
545 次 |
| 最近记录: |