WinAPI 链接 C++
WinAPI Linking c++
Win7 64位
Qt5.4.1 -> MinGW 4.9.1 32 位
下面是一个生成唯一 GUID 的简单 Qt 应用程序:
guid.pro
QT += core
QT -= gui
TARGET = qt-msync
CONFIG += console
CONFIG -= app_bundle
#INCLUDEPATH += "C:/Program Files/Microsoft SDKs/Windows/v7.1/Include"
LIBS += "C:/Program Files/Microsoft SDKs/Windows/v7.1/Lib/Rpcrt4.lib"
TEMPLATE = app
SOURCES += main.cpp
main.cpp
#include <QCoreApplication>
#include <Rpc.h>
int main(int argc, char *argv[])
{
QCoreApplication a(argc, argv);
GUID myGuid;
CoCreateGuid(&myGuid);
return a.exec();
}
如果qmake包含
包含路径 += "C:/Program Files/Microsoft SDKs/Windows/v7.1/Include"
我对 72 个错误感到震惊,所有这些错误看起来都像是与双下划线宏相关的错误。
目前情况
\main.cpp:9: 错误:未定义对 `_imp__CoCreateGuid@4' 的引用
显然是链接器错误,但存在库文件
LIBS += "C:/Program Files/Microsoft SDKs/Windows/v7.1/Lib/Rpcrt4.lib"
还有谁设法让 Rpc.h 合作在 64 机器上编译 32 目标?
我也尝试过使用 MSVC(Windows SDK 中包含的代码)进行更简单的 CMake C++ 代码编译,但它会抛出相同的错误。
#INCLUDEPATH += "C:/Program Files/Microsoft SDKs/Windows/v7.1/Include"
#LIBS += "C:/Program Files/Microsoft SDKs/Windows/v7.1/Lib/Rpcrt4.lib"
win32
{
LIBS += -lole32
}
我仅使用 ole32.lib.
就能完全构建您的代码
Win7 64位 Qt5.4.1 -> MinGW 4.9.1 32 位
下面是一个生成唯一 GUID 的简单 Qt 应用程序:
guid.pro
QT += core
QT -= gui
TARGET = qt-msync
CONFIG += console
CONFIG -= app_bundle
#INCLUDEPATH += "C:/Program Files/Microsoft SDKs/Windows/v7.1/Include"
LIBS += "C:/Program Files/Microsoft SDKs/Windows/v7.1/Lib/Rpcrt4.lib"
TEMPLATE = app
SOURCES += main.cpp
main.cpp
#include <QCoreApplication>
#include <Rpc.h>
int main(int argc, char *argv[])
{
QCoreApplication a(argc, argv);
GUID myGuid;
CoCreateGuid(&myGuid);
return a.exec();
}
如果qmake包含 包含路径 += "C:/Program Files/Microsoft SDKs/Windows/v7.1/Include" 我对 72 个错误感到震惊,所有这些错误看起来都像是与双下划线宏相关的错误。
目前情况 \main.cpp:9: 错误:未定义对 `_imp__CoCreateGuid@4' 的引用 显然是链接器错误,但存在库文件 LIBS += "C:/Program Files/Microsoft SDKs/Windows/v7.1/Lib/Rpcrt4.lib"
还有谁设法让 Rpc.h 合作在 64 机器上编译 32 目标?
我也尝试过使用 MSVC(Windows SDK 中包含的代码)进行更简单的 CMake C++ 代码编译,但它会抛出相同的错误。
#INCLUDEPATH += "C:/Program Files/Microsoft SDKs/Windows/v7.1/Include"
#LIBS += "C:/Program Files/Microsoft SDKs/Windows/v7.1/Lib/Rpcrt4.lib"
win32
{
LIBS += -lole32
}
我仅使用 ole32.lib.
就能完全构建您的代码