You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在CMake中配置链接ntdll.lib以解决未定义引用报错

CMake链接ntdll.lib配置方案

这个错误是因为链接阶段未指定关联ntdll系统库,按以下步骤配置即可:

  • 打开项目根目录的CMakeLists.txt文件,找到你需要链接ntdll.lib的生成目标(可执行文件/动态库)的定义位置,添加如下配置:
# 将下方的<你的目标名称>替换为实际的目标名,比如add_executable定义的可执行文件名
target_link_libraries(<你的目标名称> PRIVATE ntdll.lib)
  • 若你使用MinGW工具链编译,配置改为如下形式即可:
target_link_libraries(<你的目标名称> PRIVATE ntdll)
  • 额外注意:如果是C项目,你在代码中声明NtSetTimerResolution函数时,需要用extern "C"包裹,避免C符号修饰导致匹配失败,示例声明如下:
#include <windows.h>

#ifdef __cplusplus
extern "C" {
#endif

NTSYSAPI NTSTATUS NTAPI NtSetTimerResolution(
    ULONG DesiredResolution,
    BOOLEAN SetResolution,
    PULONG CurrentResolution
);

#ifdef __cplusplus
}
#endif

配置完成后删除旧的CMake构建缓存,重新生成并编译即可解决链接错误。

内容的提问来源于stack exchange,提问作者a_girl

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.01 00:45:05