是否可以在配置时从CMake脚本中获取当前链接器路径?
具体来说,当我的主要CMakeLists.txt运行时(使用Visual Studio的其中一种),我正在寻找一种提取Windows SDK路径的方法以及编译器的标准库,因此我可以将其传递给嵌套的CMake脚本使用execute_command
,它使用了不同的生成器。似乎CMAKE_CXX_COMPILER
被设置为绝对路径,从中我可以对路径进行反向工程,例如到msvcrt,但这感觉很脆弱。对于Windows SDK,我知道CMAKE_VS_WINDOWS_TARGET_PLATFORM_VERSION
,可以使用一些其他知识将其组合成一条完整的路径,但目前涉及硬编码的路径。
我对任何提示感到高兴。我每次都失去多少小时和几天,真是太神奇了我需要在CMake中做一些尚未硬编码到CMake源代码中的事情。
CMAKE_LINKER
变量将在CMake在配置阶段识别您的编译器后设置。您可以打印出路径以验证它是否是您想要的:
message(STATUS ${CMAKE_LINKER})
这将为Visual Studio打印如下内容:
C:/Program Files (x86)/Microsoft Visual Studio/2019/Community/VC/Tools/MSVC/14.24.28314/bin/Hostx64/x64/link.exe