有人指出我应该使用MS VC ++而不是MinGW,这似乎给我带来了不同的问题:
2个未解析的外部符号
如下所示:
这些中的每一个都跟踪到WinUser.h:
我应该为此做一个全新的帖子吗? - 或修改当前的帖子?
我正在尝试使用vJoy中的库重新构建一个将鼠标输入映射到“Virtual Joy Stick”的程序
原始项目可以在这里找到:MouseToJoystick
我没有改变程序中的任何内容,我正在尝试使用QT 5.10.0在QT Creator中编译它 - 我不确定我是否正确设置了“Build Settings”。
以下是编译警告和错误的当前列表:
据我所知,列出的每个“未定义的引用”都是一个可以追溯到“vJoyInterface.h”的函数,它包含在“MainWindow.cpp”文件中,其中发生了“未定义的引用”。
MainWindow.cpp #includes (image)
以下是“vJoyInterface.h”文件中称为“未定义”的函数的“原型”:
因此,至少功能的“原型”存在 - 虽然功能可能仍未定义 - 我见过的其他答案说项目需要以某种方式包含/链接包含功能定义的相应库。
与vJoy相关的唯一其他文件位于“vJoyLib / 64”和“vJoyLib / 32”文件夹中。哪两个都包含这些文件:
该库在“MouseToJoystick.pro”文件中引用,如下所示:
我的假设是vJoy函数是在“vJoyInterface.lib”的某处定义的,但我不知道,我不知道如何检查。
QT Creator说有“未定义的引用”,但我知道原型已被包含在内,我认为它们是在链接到项目的库中定义的,如下图所示:
Qt Project Linking vJoyInterface (image)
但老实说,我不知道函数实际定义在哪里,或者库是否正确链接。
Qt Creator - Project Build Settings - Qt 5.10.0 MinGW 32bit
@AlexanderVX在对我的问题的评论中提供了这个答案
在项目编译设置中从MinGW切换到MS VC ++后,我在我的“MouseToJoystick.pro”文件中添加了一行代码。
这是新的代码行:
项目文件代码(图片)
之后我做了“全部清理”,“运行Qmake”和“全部重建”,如下图所示:
步骤(图像)
该程序编译并运行完美,谢谢@AlexanderVX