CMake条件库链接取决于平台
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了CMake条件库链接取决于平台相关的知识,希望对你有一定的参考价值。
我正在使用CMake将Boost链接到我的应用程序中:
我有这个代码在我的CMakeLists.txt
:TARGET_LINK_LIBRARIES(app -lboost_system -lboost_thread -lcrypt)
上的Linux上运行
但是在OpenBSD上,-lboost_thread
是-lboost_thread-mt
而不是-lcrypt
。有没有办法以这样的方式编写CMakeLists.txt,它根据哪个库存在来处理这两种情况?
答案
处理这种平台特定差异的需要是人们应该使用查找模块的原因。特别是FindBoost在这种情况下。在执行find_package
之后,您应该能够通过其规范目标名称Boost::thread
拉入线程库。
任何必需的PUBLIC库或标题都将成为规范目标链接界面的一部分,因此将自动添加,您无需付出更多努力。您需要做的就是将规范目标添加为链接依赖项
target_link_libraries(app Boost::thread)
以上是关于CMake条件库链接取决于平台的主要内容,如果未能解决你的问题,请参考以下文章