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

编译报错:undefined reference to `GetProcessMemoryInfo' 求助

问题解决:undefined reference to GetProcessMemoryInfo

核心原因:链接库的顺序错误

GCC链接器按命令行顺序处理输入文件:先处理源文件/目标文件,遇到未定义符号时,才会从后续的库中查找对应实现。如果把库放在源文件前面,链接器处理库时还没遇到需要这些符号的源文件,就不会保留库中的相关符号,后续处理源文件时自然找不到GetProcessMemoryInfo的定义。

修复方法

修改你的批处理脚本,将链接库参数%LINK%移到源文件%SRC%之后:

set FLAGS=-Wall -Wextra -g3 -O -Werror
set LINK=-static-libgcc -lpsapi -lkernel32
set SRC=*.c src/*.c test/*c
set OUT_FILE=-o build/build.exe

gcc %FLAGS% %SRC% %LINK% %OUT_FILE%

额外检查点(可选)

  • 确认你的MinGW/GCC环境中存在libpsapi.a或psapi.lib(通常位于工具链的lib目录下)
  • 如果仍有问题,可以尝试在代码开头添加宏定义,确保PSAPI相关函数声明被正确展开:
    #define _WIN32_WINNT 0x0501
    #include <windows.h>
    #include <psapi.h>
    

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.07 05:50:20