调用Win32 API函数时的未定义引用

时间:2018-09-16 18:16:28

标签: c++

我正在尝试使用SetCursorPos function在带有C ++的Windows 10中移动光标。

这是我的代码:

#include <Windows.h>
int main()
{
    SetCursorPos(100,100);
    return 0;
}

每当我运行代码时,都会出现此错误:

undefined reference to `SetCursorPos@8'

我已经阅读了What is an undefined reference/unresolved external symbol error and how do I fix it?,但找不到解决问题的方法。

我肯定我错过了一些东西,但是我不知道那是什么东西。很抱歉,如果答案在其他地方发布。

1 个答案:

答案 0 :(得分:0)

Microsoft在 user32 库中附带了SetCursorPos函数(请参见MSDN

如果使用Microsoft Visual C ++编译器,则可以使用名称“ user32.lib”向该项目静态添加该库。

如果您改用GCC,则名称具有另一个扩展名:“ user32.a”。通常,GCC中默认使用“ .a”扩展名,因此无需将其传递给编译器。

如果要添加不在GCC知道路径中的库,则需要“ -L”标志来告诉GCC在哪里寻找该库。 “ -l”标志(小写L)告诉GCC使用该库。

总结:

g++ movecursor.cpp -luser32