Qt:窗口函数是未解析的外部符号
Qt: windows functions are unresolved external symbols
我正在尝试使用QtCreator中的te WinAPI编译一个简单的类似helloworld的非Qt C++应用程序。代码如下:
#include <windows.h>
int main()
{
HWND cons = GetConsoleWindow();
SetWindowText(cons, L"I am the console window");
MessageBox(cons, L"Hello world!", L"I am the MessageBox", MB_OK | MB_ICONERROR);
return 0;
}
看起来很简单,但是当我尝试构建它时,编译失败并显示:
main.obj:-1: error: LNK2019: unresolved external symbol __imp__MessageBoxW@16 referenced in function _main
main.obj:-1: error: LNK2019: unresolved external symbol __imp__SetWindowTextW@8 referenced in function _main
我开始寻找,我找到了这个,但它根本没有帮助我,因为当我写这篇文章时:
LIBS += -L"C:\Program Files (x86)\Microsoft SDKs\Windows\v7.0A\Lib"
甚至这个:
LIBS += -L"C:\Program Files (x86)\Microsoft SDKs\Windows\v7.0A\Lib\shell32.lib"
.pro
在我看来,这些"符号"仍然没有解决。每次更改.pro
文件内容后,我都运行了 qmake。那么,有什么想法吗?
-L
设置DLL的搜索路径,但它实际上并没有链接任何内容。实际链接是通过 -l
完成的。设置系统库的搜索路径不是必需的,但您需要针对 user32 进行链接:
win32:LIBS += -luser32
除了弗兰克的回答(这对我帮助很大,谢谢!我想补充一点,这只是MSVC所必需的,MinGW似乎不需要那条线。这对我来说是最令人困惑的部分,我首先认为我在 msvc 工具链方面遇到了问题。
我的加入现在看起来像这样,以反映这一事实:
msvc: LIBS += -luser32
相关文章:
- C++:Application.cpp中抛出了未解析的外部符号(解决方案在问题的末尾,供未来的读者参考)
- 未解析的外部符号_MsiLocateComponentW@12.
- 在C++中使用 gRPC 时未解析的外部符号
- LibPrivoxy: 未解析的外部符号 __declspec(dllimport) int __stdcall Sta
- 尝试从 XamlApplication 编译 C++/WinRT 空白应用程序时,我收到未解析的外部符号 winrt_make_*
- 我收到错误LNK2001:未解析的外部符号(C++代码)
- 可视抽象类 c++(错误 LNK 2001:未解析的外部符号)
- 如何摆脱C++中未解析的外部符号"private: static char"错误?
- 当 lib 已添加到其他依赖项时,如何在 VS 中调试未解析的外部符号错误
- 仅在少数方法(静态或共享库)中解析的外部符号
- 未解析的外部符号"__declspec(dllimport)与 Spdlog c++ 库
- 函数 _main (OPENGL C++) 中引用的未解析的外部符号 ________
- 错误LNK2019未解析的外部符号"public: __thiscall SLinkList<char>::SLinkList<char>(void)"
- 使用静态 constexpr 成员的未解析外部符号
- 引入参数化构造函数后显示 LNK 2019 未解析外部符号的代码错误
- Dlib LNK2001未解析的外部符号USER_ERROR__consistent_build_configurati
- 矛盾的未解决的外部符号+未使用的库与VS2017和FFMPEG 4
- 链接器错误:切换到unicode生成给出:未解析的外部符号WinMain
- 类模板上一个特定函数的未解析外部符号
- LNK2001:未解析的外部符号public:static类std::vector