链接问题:Qt5.5 32位VS2013

Linking problems: Qt5.5 32bit VS2013

本文关键字:32位 VS2013 Qt5 问题 链接      更新时间:2023-10-16

我一直在寻找这个问题的答案,但到目前为止还没有运气。

使用Qt5.5 32位,VS2013在Win8 64位

我的。pro文件包含这个:

INCLUDEPATH += "C:Program Files (x86)Microsoft SDKsWindowsv7.1AInclude"
LIBS += -L"C:Program Files (x86)Microsoft SDKsWindowsv7.1ALib" -ladvapi32

我已经检查了两个文件夹和WinUser.h是在包括和User32。

我的代码中有以下两个函数:
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 64位的Qt 5.3.2 32位VS2010上使用完全相同的代码,它编译没有问题。在我目前的配置中,我在函数的::SystemParametersInfo和SendMessage部分上得到链接错误,并在标头上得到一堆警告。

C:Program Files (x86)Microsoft SDKsWindowsv7.1AIncludesal_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 SDKsWindowsv7.1ALib" -ladvapi32 -luser32

我没有链接user32.lib.