[英]Linking problems: Qt5.5 32bit VS2013
我一直在寻找答案,但还没有运气。
在Win8 64位上使用Qt5.5 32位,VS2013
我的.pro文件包含以下内容:
INCLUDEPATH += "C:\Program Files (x86)\Microsoft SDKs\Windows\v7.1A\Include"
LIBS += -L"C:\Program Files (x86)\Microsoft SDKs\Windows\v7.1A\Lib" -ladvapi32
我已经检查了两个文件夹,并且WinUser.h在Include中,而User32.lib在Lib中。
我的代码中具有以下两个功能:
void suppressAnimations()
{
ANIMATIONINFO m_original_settings;
m_original_settings.cbSize = sizeof(m_original_settings);
if (::SystemParametersInfo(SPI_GETANIMATION, sizeof(m_original_settings), &m_original_settings, 0)) {
ANIMATIONINFO no_animation = { sizeof(no_animation), 0 };
::SystemParametersInfo(SPI_SETANIMATION, sizeof(no_animation), &no_animation, SPIF_UPDATEINIFILE | SPIF_SENDCHANGE);
}
}
和
int BackgroundTaskManager::changeMonitorState(bool turnOn)
{
int lparam = 2;
if(turnOn) {
lparam = -1;
BackgroundTaskManager::MonitorIsSleeping = false;
} else {
lparam = 2;
BackgroundTaskManager::MonitorIsSleeping = true;
}
return SendMessage(HWND_BROADCAST, WM_SYSCOMMAND, SC_MONITORPOWER, (LPARAM)lparam);
}
我在Windows 7 64bit上使用了与Qt 5.3.2 32bit VS2010完全相同的代码,并且编译没有问题。 在我当前的配置中,我在函数的:: SystemParametersInfo和SendMessage部分上收到链接错误,并在标头上看到一堆警告。
警告事项
C:\Program Files (x86)\Microsoft SDKs\Windows\v7.1A\Include\sal_supp.h:57: warning: C4005: '__useHeader' : macro redefinition
链接错误
main.obj:-1: error: LNK2019: unresolved external symbol __imp__SystemParametersInfoW@16 referenced in function "void __cdecl suppressAnimations(void)" (?suppressAnimations@@YAXXZ)
backgroundtaskmanager.obj:-1: error: LNK2019: unresolved external symbol __imp__SendMessageW@16 referenced in function "private: int __thiscall BackgroundTaskManager::changeMonitorState(bool)" (?changeMonitorState@BackgroundTaskManager@@AAEH_N@Z)
另外一点信息,我也在Win7 64位上使用Qt5.5 32位VS2013进行了尝试,并且收到了上述错误。 还有一点信息,在Qt Creator中,我可以按F2上方的任一符号,然后转到正确的标题。
有人可以指出我正确的方向吗?
我知道这很简单:
LIBS += -L"C:\Program Files (x86)\Microsoft SDKs\Windows\v7.1A\Lib" -ladvapi32 -luser32
我没有链接user32.lib。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.