cmake 如何在 Visual Studio 中激活 "Inherit from parent" link 选项
How can cmake activate "Inherit from parent" link option in Visual Studio
我正在使用 cmake 生成多平台 C++ 项目的 Windows/VisualStudio 解决方案。
在 VS 中,当我单击项目的 Properties -> Linker -> Input -> Additional Dependencies -> Edit 时,会出现一个包含我用 cmake 添加的依赖项的列表, 那也行。但是还有一个复选框“从项目默认值的父级继承”。当 cmake 生成解决方案时,此复选框已关闭,但我需要检查它才能 link.
有没有办法让 cmake 生成一个选中此复选框的 VS 项目?
编辑:项目是用 clang++ 编译的。
选中此框会将 %(AdditionalDependencies)
附加到附加依赖项列表中。您可以设置目标的 LINK_LIBRARIES
属性 以添加此 'manually':
set_target_properties(<target> PROPERTIES LINK_LIBRARIES "%(AdditionalDependencies)")
您可能需要在 LINK_LIBRARIES
属性 中获取它并附加它,具体取决于您构建依赖项列表的方式。请注意,尝试使用普通命令 target_link_libraries
不起作用,因为 CMake 不确定如何处理请求,因为它以 %
开头。此外,当出现在 IDE 中时,它实际上会添加 %(AdditionalDependencies).lib
,但它仍然按预期工作。
我试过其他方法,对我来说效果很好。
在我的顶部“.cmake”文件中,我设置了各种选项,例如调用 add_compile_options(...)
或设置 CMAKE_CXX_STANDARD_LIBRARIES
。我在此文件的末尾添加了以下行:
set(CMAKE_CXX_STANDARD_LIBRARIES "$(CMAKE_CXX_STANDARD_LIBRARIES) %(AdditionalDependencies) ")
它在 <AdditionalIncludeDirectories>
数据的末尾附加了“;%(AdditionalDependencies)
”,没有阻止 [=23] 的“.a
”或“.lib
”后缀=] 在我的案例中完成。
我正在使用 cmake 生成多平台 C++ 项目的 Windows/VisualStudio 解决方案。
在 VS 中,当我单击项目的 Properties -> Linker -> Input -> Additional Dependencies -> Edit 时,会出现一个包含我用 cmake 添加的依赖项的列表, 那也行。但是还有一个复选框“从项目默认值的父级继承”。当 cmake 生成解决方案时,此复选框已关闭,但我需要检查它才能 link.
有没有办法让 cmake 生成一个选中此复选框的 VS 项目?
编辑:项目是用 clang++ 编译的。
选中此框会将 %(AdditionalDependencies)
附加到附加依赖项列表中。您可以设置目标的 LINK_LIBRARIES
属性 以添加此 'manually':
set_target_properties(<target> PROPERTIES LINK_LIBRARIES "%(AdditionalDependencies)")
您可能需要在 LINK_LIBRARIES
属性 中获取它并附加它,具体取决于您构建依赖项列表的方式。请注意,尝试使用普通命令 target_link_libraries
不起作用,因为 CMake 不确定如何处理请求,因为它以 %
开头。此外,当出现在 IDE 中时,它实际上会添加 %(AdditionalDependencies).lib
,但它仍然按预期工作。
我试过其他方法,对我来说效果很好。
在我的顶部“.cmake”文件中,我设置了各种选项,例如调用 add_compile_options(...)
或设置 CMAKE_CXX_STANDARD_LIBRARIES
。我在此文件的末尾添加了以下行:
set(CMAKE_CXX_STANDARD_LIBRARIES "$(CMAKE_CXX_STANDARD_LIBRARIES) %(AdditionalDependencies) ")
它在 <AdditionalIncludeDirectories>
数据的末尾附加了“;%(AdditionalDependencies)
”,没有阻止 [=23] 的“.a
”或“.lib
”后缀=] 在我的案例中完成。