首页 > 解决方案 > 导入目标的 target_link_directories

问题描述

在我的项目中,我使用MAP_IMPORTED_CONFIG_FINAL外部库进行自定义配置FINAL。是否有一些工作示例说明如何使用 cmaketarget_link_directories为自定义配置设置导入目标。FINAL

所以这里是步骤:

  1. 外部库是 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
  1. 这是具有以下结构的示例项目
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 DirectoriesC:/Dev/third-party/boost-1_67_0/install/lib/$(Configuration)C:/Dev/third-party/boost-1_67_0/install/lib/FinalC:/Dev/third-party/boost-1_67_0/install/lib/Release

我在想解决这个问题的一种方法是使用target_link_directories,但在这种情况下如何将它与 cmake 生成器表达式一起使用。

谢谢

标签: cmake

解决方案


推荐阅读