簡體   English   中英

多個未定義的引用-Qt Creator-vJoy C ++

[英]Multiple Undefined References - Qt Creator - vJoy C++

編輯

有人指出,我應該使用MS VC ++而不是MinGW ,這似乎給我帶來了另一個問題:

2個未解析的外部符號

  1. __imp_SetWindowsHookExW
  2. __imp_UnhookWindowsHookEx

如此處所示: 圖片1

這些跟蹤到這里的WinUser.h

img2

我應該為此做一個全新的帖子嗎? -或修改當前帖子?


原始帖子:

我正在嘗試重新構建一個程序,該程序使用vJoy中的庫將鼠標輸入映射到“虛擬游戲桿”

原始項目可以在這里找到: MouseToJoystick

我沒有更改程序中的任何內容,並且嘗試使用QT 5.10.0QT Creator中進行編譯-我不確定我是否正確設置“內部設置”


這是當前的編譯警告和錯誤列表:

Qt Creator錯誤(* image *)

據我所知,列出的每個“未定義引用”是一個可以追溯到“ vJoyInterface.h”的函數,該函數包含在發生“未定義引用”的文件“ MainWindow.cpp”中。

項目**目錄**結構(*圖像*)

MainWindow.cpp #includes( image

以下是在“ vJoyInterface.h”文件中被稱為“未定義”的函數的“原型”:

vJoyInterface標頭( 圖片


因此,至少功能的“原型”存在-盡管功能可能仍未定義-我已經看到其他答案說項目需要以某種方式包括/鏈接包含功能定義的適當庫。

vJoy相關的唯一其他文件位於“ vJoyLib / 64 ”和“ vJoyLib / 32 ”文件夾中。 兩者都包含以下文件:

vJoyLib文件夾庫(* image *)

該庫在“ MouseToJoystick.pro ”文件中引用,如下所示:

Qt項目鏈接vJoyInterface(* image *)

我的假設是vJoy函數是在“ vJoyInterface.lib ”中的某個位置定義的,但我不知道,也不知道如何檢查。


TL; DR

QT Creator說有“未定義的引用”,但是我知道已經包含了原型,並且我假設它們是在與項目鏈接的庫中定義的,如下圖所示:

Qt項目鏈接vJoyInterface( 圖片

但老實說,我不知道這些函數實際定義在哪里,或者該庫是否正確鏈接。


問題

  1. 如何弄清楚函數的實際定義位置, 或者如何在項目中正確包含庫/定義?
  2. 為什么每個功能在錯誤消息的開頭都添加了“ _imp__ ”?

附加信息

Qt Creator- 項目構建設置 -Qt 5.10.0 MinGW 32位

@AlexanderVX在對我的問題的評論中提供了此答案

在項目編譯設置中從MinGW切換到MS VC ++之后,我向“ MouseToJoystick.pro ”文件中添加了1行代碼。

這是新的代碼行:

項目文件代碼(

之后,我進行了“全部清理”,“運行Qmake”和“全部重建”,如下圖所示:

步驟( 圖片

該程序可以編譯並完美運行,謝謝@AlexanderVX

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM