您当前的位置: 首页 >  ar
  • 1浏览

    0关注

    483博文

    0收益

  • 0浏览

    0点赞

    0打赏

    0留言

私信
关注
热门博文

CMake学习进阶:find_library链接到debug和release

高精度计算机视觉 发布时间:2022-05-30 18:16:12 ,浏览量:1

find_library官方的解释在这里,

find_library — CMake 3.23.2 Documentationicon-default.png?t=M4ADhttps://cmake.org/cmake/help/latest/command/find_library.html因为文章比较长,就不摘录了。

开始我以为是找库文件的路径的,当然这么理解似乎也没错,于是我自己编译了一个库nng,测试了一下,

find_library(NNG_LIBRARY debug nngd optimized nng HINTS ${NNG_LIBRARY_PATH})
target_link_libraries(EasyMessage ${NNG_LIBRARY})

然后发现,程序死活只能链接到nng.lib,就是不链接到nngd.lib;然后网上各种找,因为我的cmake内容比较多,一开始根本不知道问题出在哪里,所以折腾了半天,最后才发现是对find_library这个家伙理解不对。

测试代码如下,

SET(NNG_LIBRARY_PATH "../nng1.5.2/bin/")

find_library(NNGD_LIBRARY debug nngd optimized nng HINTS ${NNG_LIBRARY_PATH})
message("what find_library(NNGD_LIBRARY...) obtained is: " ${NNGD_LIBRARY})
#----> what find_library obtained is: E:/vQt/EasyMessage/nng1.5.2/bin/nngd.lib

find_library(NNG_LIBRARY debug nngd optimized nng HINTS ${NNG_LIBRARY_PATH})
message("what find_library(NNG_LIBRARY...) obtained is: " ${NNG_LIBRARY})
#----> what find_library obtained is: E:/vQt/EasyMessage/nng1.5.2/bin/nng.lib

如果要链接到nngd.lib的话,find_library就一定要写成find_library(NNGD_LIBRARY...),不然的话,后面加什么debug,optimize都是没用的。

当然,你也可以组合下面这样的指令来完成同样的功能,

link_directories(${NNG_LIBRARY_PATH})
target_link_libraries(EasyMessage debug nngd) 

本文结束。

关注
打赏
1661664439
查看更多评论
立即登录/注册

微信扫码登录

0.0360s