cmake - 导入目标的 target_link_directories
问题描述
在我的项目中,我使用MAP_IMPORTED_CONFIG_FINAL
外部库进行自定义配置FINAL
。是否有一些工作示例说明如何使用 cmaketarget_link_directories
为自定义配置设置导入目标。FINAL
所以这里是步骤:
- 外部库是 boost-1.67.0,我分别使用以下命令进行 Debug 和 Release 安装:
.\bootstrap.bat
.\b2 install --prefix=C:\Dev\third-party\vs2017\boost-1.67.0\Debug toolset=msvc-14.1 address-model=64 link=static -j8 variant=debug
.\b2 install --prefix=C:\Dev\third-party\vs2017\boost-1.67.0\Release toolset=msvc-14.1 address-model=64 link=static -j8 variant=release
- 这是具有以下结构的示例项目
boost-example/
|
+-- main.cpp
|
+-- CMakeLists.txt
|
|
+-- CMake/
| |
| +-- AddConfiguration.cmake
| +-- mpIncludeBoost.cmake
| +-- mpSetupMSVCRuntime.cmake
| +-- SetupConfigurations.cmake
这些文件可以在这个 gitlab 项目中找到:https ://gitlab.com/sunayanag/boost-example 。
对于生成的 sln 文件,请注意在 Visual Studio 中我得到的Linker
部分中的计算结果为但该目录不存在,因为 Final 不是 boost 的有效配置,它应该是。Additional Library Directories
C:/Dev/third-party/boost-1_67_0/install/lib/$(Configuration)
C:/Dev/third-party/boost-1_67_0/install/lib/Final
C:/Dev/third-party/boost-1_67_0/install/lib/Release
我在想解决这个问题的一种方法是使用target_link_directories
,但在这种情况下如何将它与 cmake 生成器表达式一起使用。
谢谢
解决方案
推荐阅读
- flutter - Flutter:如何将条形码扫描值传递给 TextFormField
- java - 如何在 Resilience4j Spring starter 中配置事件
- python - python - 使用 BeautifulSoup 抓取网页的更有效方法
- android - 清除导航返回堆栈和重新创建活动
- node.js - 错误:监听 EADDRINUSE:地址已在使用 :::3000 - Digitalocean
- c - C 非法指令
- c++ - 在 rapidjson 中添加集合(不同的元素)
- javascript - 使用 await 和 async 处理承诺
- html - 似乎无法调整 div 宽度?
- javascript - 在 livewire 中的 $set 魔术动作中传递布尔值