【发布时间】:2022-08-24 23:10:28
【问题描述】:
我将以CMake\'s example project 为例。所以我有这个:
cmake_minimum_required(VERSION 3.10)
# set the project name
project(Tutorial)
# add the executable
add_executable(Tutorial tutorial.h)
set_target_properties(Tutorial PROPERTIES LINKER_LANGUAGE CXX)
生成解决方案后,当我在 Visual Studio 中打开解决方案并转到 Project Properties - Configuration Properties - Linker - Input - Additional Dependencies 时,我看到它链接了很多库:
我想阻止 user32.lib 链接这个特定的项目(不是解决方案中的每个项目)。我尝试谷歌搜索并找到了这个线程:How to avoid linking to system libraries。但我找不到解决方案。
我想这样做的原因是因为我试图不在我的测试项目中链接 user32.lib,所以我可以使用链接替换(也称为链接接缝)技术来提供我自己的在测试项目中实现,模拟系统调用,以便能够测试执行这些系统调用的类。
它已经有效:我在 Visual Studio 的项目属性中删除了库(并将其添加到 Ignore Specific Default Libraries 属性的列表中),但问题是每次重新生成解决方案时,链接图书馆得到恢复。