Issues trying to include with a cmake based project
cpyarger opened this issue · comments
Christopher P. Yarger commented
I keep getting unresolved externals issues when trying to build using CMake
here is my current branch,
Any help would be appreciated.
This project is awesome and I can't wait to include it in mine
https://github.com/cpyarger/QMidi/tree/cmake
Christopher P. Yarger commented
Here is a copy of my error log
Error (active) E0020 identifier "fMidiPtrs" is undefined QMIDI C:\Users\cpyar\Desktop\obs\obs-studio\plugins\obs-midi\src\QMidi\src\OS\QMidi_Win32.cpp 58
Error (active) E0276 name followed by '::' must be a class or namespace name QMIDI C:\Users\cpyar\Desktop\obs\obs-studio\plugins\obs-midi\src\QMidi\src\OS\QMidi_Win32.cpp 23
Error (active) E0070 incomplete type is not allowed QMIDI C:\Users\cpyar\Desktop\obs\obs-studio\plugins\obs-midi\src\QMidi\src\OS\QMidi_Win32.cpp 25
Error (active) E0515 cannot convert to incomplete class "QMap<QString, QString>" QMIDI C:\Users\cpyar\Desktop\obs\obs-studio\plugins\obs-midi\src\QMidi\src\OS\QMidi_Win32.cpp 29
Error (active) E0070 incomplete type is not allowed QMIDI C:\Users\cpyar\Desktop\obs\obs-studio\plugins\obs-midi\src\QMidi\src\OS\QMidi_Win32.cpp 34
Error (active) E0515 cannot convert to incomplete class "QMap<QString, QString>" QMIDI C:\Users\cpyar\Desktop\obs\obs-studio\plugins\obs-midi\src\QMidi\src\OS\QMidi_Win32.cpp 37
Error (active) E0276 name followed by '::' must be a class or namespace name QMIDI C:\Users\cpyar\Desktop\obs\obs-studio\plugins\obs-midi\src\QMidi\src\OS\QMidi_Win32.cpp 40
Error (active) E0020 identifier "fConnected" is undefined QMIDI C:\Users\cpyar\Desktop\obs\obs-studio\plugins\obs-midi\src\QMidi\src\OS\QMidi_Win32.cpp 42
Error (active) E0020 identifier "disconnect" is undefined QMIDI C:\Users\cpyar\Desktop\obs\obs-studio\plugins\obs-midi\src\QMidi\src\OS\QMidi_Win32.cpp 43
Error (active) E0020 identifier "fMidiPtrs" is undefined QMIDI C:\Users\cpyar\Desktop\obs\obs-studio\plugins\obs-midi\src\QMidi\src\OS\QMidi_Win32.cpp 44
Error (active) E0020 identifier "fDeviceId" is undefined QMIDI C:\Users\cpyar\Desktop\obs\obs-studio\plugins\obs-midi\src\QMidi\src\OS\QMidi_Win32.cpp 48
Error (active) E0276 name followed by '::' must be a class or namespace name QMIDI C:\Users\cpyar\Desktop\obs\obs-studio\plugins\obs-midi\src\QMidi\src\OS\QMidi_Win32.cpp 53
Error (active) E0020 identifier "fConnected" is undefined QMIDI C:\Users\cpyar\Desktop\obs\obs-studio\plugins\obs-midi\src\QMidi\src\OS\QMidi_Win32.cpp 55
Error (active) E0276 name followed by '::' must be a class or namespace name QMIDI C:\Users\cpyar\Desktop\obs\obs-studio\plugins\obs-midi\src\QMidi\src\OS\QMidi_Win32.cpp 65
Error (active) E0020 identifier "fConnected" is undefined QMIDI C:\Users\cpyar\Desktop\obs\obs-studio\plugins\obs-midi\src\QMidi\src\OS\QMidi_Win32.cpp 67
Error (active) E0020 identifier "fMidiPtrs" is undefined QMIDI C:\Users\cpyar\Desktop\obs\obs-studio\plugins\obs-midi\src\QMidi\src\OS\QMidi_Win32.cpp 70
Error (active) E0276 name followed by '::' must be a class or namespace name QMIDI C:\Users\cpyar\Desktop\obs\obs-studio\plugins\obs-midi\src\QMidi\src\OS\QMidi_Win32.cpp 73
Error (active) E0020 identifier "fConnected" is undefined QMIDI C:\Users\cpyar\Desktop\obs\obs-studio\plugins\obs-midi\src\QMidi\src\OS\QMidi_Win32.cpp 75
Error (active) E0020 identifier "fMidiPtrs" is undefined QMIDI C:\Users\cpyar\Desktop\obs\obs-studio\plugins\obs-midi\src\QMidi\src\OS\QMidi_Win32.cpp 85
Error (active) E0276 name followed by '::' must be a class or namespace name QMIDI C:\Users\cpyar\Desktop\obs\obs-studio\plugins\obs-midi\src\QMidi\src\OS\QMidi_Win32.cpp 102
Error (active) E0070 incomplete type is not allowed QMIDI C:\Users\cpyar\Desktop\obs\obs-studio\plugins\obs-midi\src\QMidi\src\OS\QMidi_Win32.cpp 104
Error (active) E0515 cannot convert to incomplete class "QMap<QString, QString>" QMIDI C:\Users\cpyar\Desktop\obs\obs-studio\plugins\obs-midi\src\QMidi\src\OS\QMidi_Win32.cpp 108
Error (active) E0070 incomplete type is not allowed QMIDI C:\Users\cpyar\Desktop\obs\obs-studio\plugins\obs-midi\src\QMidi\src\OS\QMidi_Win32.cpp 113
Error (active) E0515 cannot convert to incomplete class "QMap<QString, QString>" QMIDI C:\Users\cpyar\Desktop\obs\obs-studio\plugins\obs-midi\src\QMidi\src\OS\QMidi_Win32.cpp 116
Error (active) E0020 identifier "QMidiIn" is undefined QMIDI C:\Users\cpyar\Desktop\obs\obs-studio\plugins\obs-midi\src\QMidi\src\OS\QMidi_Win32.cpp 121
Error (active) E0020 identifier "self" is undefined QMIDI C:\Users\cpyar\Desktop\obs\obs-studio\plugins\obs-midi\src\QMidi\src\OS\QMidi_Win32.cpp 121
Error (active) E0757 "QMidiIn" is not a type name QMIDI C:\Users\cpyar\Desktop\obs\obs-studio\plugins\obs-midi\src\QMidi\src\OS\QMidi_Win32.cpp 121
Error (active) E0020 identifier "emit" is undefined QMIDI C:\Users\cpyar\Desktop\obs\obs-studio\plugins\obs-midi\src\QMidi\src\OS\QMidi_Win32.cpp 128
Error (active) E0276 name followed by '::' must be a class or namespace name QMIDI C:\Users\cpyar\Desktop\obs\obs-studio\plugins\obs-midi\src\QMidi\src\OS\QMidi_Win32.cpp 147
Error (active) E0020 identifier "fConnected" is undefined QMIDI C:\Users\cpyar\Desktop\obs\obs-studio\plugins\obs-midi\src\QMidi\src\OS\QMidi_Win32.cpp 149
Error (active) E0020 identifier "disconnect" is undefined QMIDI C:\Users\cpyar\Desktop\obs\obs-studio\plugins\obs-midi\src\QMidi\src\OS\QMidi_Win32.cpp 150
Error (active) E0020 identifier "fMidiPtrs" is undefined QMIDI C:\Users\cpyar\Desktop\obs\obs-studio\plugins\obs-midi\src\QMidi\src\OS\QMidi_Win32.cpp 151
Error (active) E0020 identifier "fDeviceId" is undefined QMIDI C:\Users\cpyar\Desktop\obs\obs-studio\plugins\obs-midi\src\QMidi\src\OS\QMidi_Win32.cpp 153
Error (active) E0258 'this' may only be used inside a nonstatic member function QMIDI C:\Users\cpyar\Desktop\obs\obs-studio\plugins\obs-midi\src\QMidi\src\OS\QMidi_Win32.cpp 157
Error (active) E0276 name followed by '::' must be a class or namespace name QMIDI C:\Users\cpyar\Desktop\obs\obs-studio\plugins\obs-midi\src\QMidi\src\OS\QMidi_Win32.cpp 170
Error (active) E0020 identifier "fConnected" is undefined QMIDI C:\Users\cpyar\Desktop\obs\obs-studio\plugins\obs-midi\src\QMidi\src\OS\QMidi_Win32.cpp 172
Error (active) E0020 identifier "fMidiPtrs" is undefined QMIDI C:\Users\cpyar\Desktop\obs\obs-studio\plugins\obs-midi\src\QMidi\src\OS\QMidi_Win32.cpp 175
Error (active) E0276 name followed by '::' must be a class or namespace name QMIDI C:\Users\cpyar\Desktop\obs\obs-studio\plugins\obs-midi\src\QMidi\src\OS\QMidi_Win32.cpp 182
Error (active) E0020 identifier "fConnected" is undefined QMIDI C:\Users\cpyar\Desktop\obs\obs-studio\plugins\obs-midi\src\QMidi\src\OS\QMidi_Win32.cpp 184
Error (active) E0020 identifier "fMidiPtrs" is undefined QMIDI C:\Users\cpyar\Desktop\obs\obs-studio\plugins\obs-midi\src\QMidi\src\OS\QMidi_Win32.cpp 187
Error (active) E0276 name followed by '::' must be a class or namespace name QMIDI C:\Users\cpyar\Desktop\obs\obs-studio\plugins\obs-midi\src\QMidi\src\OS\QMidi_Win32.cpp 190
Error (active) E0020 identifier "fConnected" is undefined QMIDI C:\Users\cpyar\Desktop\obs\obs-studio\plugins\obs-midi\src\QMidi\src\OS\QMidi_Win32.cpp 192
Error (active) E0020 identifier "fMidiPtrs" is undefined QMIDI C:\Users\cpyar\Desktop\obs\obs-studio\plugins\obs-midi\src\QMidi\src\OS\QMidi_Win32.cpp 195
Error LNK2019 unresolved external symbol __imp_midiOutGetNumDevs referenced in function "public: static class QMap<class QString,class QString> __cdecl QMidiOut::devices(void)" (?devices@QMidiOut@@SA?AV?$QMap@VQString@@V1@@@XZ) QMIDI C:\Users\cpyar\Desktop\obs\build\plugins\obs-midi\src\QMidi\QMidi_Win32.obj 1
Error LNK2019 unresolved external symbol __imp_midiOutGetDevCapsW referenced in function "public: static class QMap<class QString,class QString> __cdecl QMidiOut::devices(void)" (?devices@QMidiOut@@SA?AV?$QMap@VQString@@V1@@@XZ) QMIDI C:\Users\cpyar\Desktop\obs\build\plugins\obs-midi\src\QMidi\QMidi_Win32.obj 1
Error LNK2019 unresolved external symbol __imp_midiOutOpen referenced in function "public: bool __cdecl QMidiOut::connect(class QString)" (?connect@QMidiOut@@QEAA_NVQString@@@Z) QMIDI C:\Users\cpyar\Desktop\obs\build\plugins\obs-midi\src\QMidi\QMidi_Win32.obj 1
Error LNK2019 unresolved external symbol __imp_midiOutClose referenced in function "public: void __cdecl QMidiOut::disconnect(void)" (?disconnect@QMidiOut@@QEAAXXZ) QMIDI C:\Users\cpyar\Desktop\obs\build\plugins\obs-midi\src\QMidi\QMidi_Win32.obj 1
Error LNK2019 unresolved external symbol __imp_midiOutPrepareHeader referenced in function "public: void __cdecl QMidiOut::sendSysEx(class QByteArray const &)" (?sendSysEx@QMidiOut@@QEAAXAEBVQByteArray@@@Z) QMIDI C:\Users\cpyar\Desktop\obs\build\plugins\obs-midi\src\QMidi\QMidi_Win32.obj 1
Error LNK2019 unresolved external symbol __imp_midiOutUnprepareHeader referenced in function "public: void __cdecl QMidiOut::sendSysEx(class QByteArray const &)" (?sendSysEx@QMidiOut@@QEAAXAEBVQByteArray@@@Z) QMIDI C:\Users\cpyar\Desktop\obs\build\plugins\obs-midi\src\QMidi\QMidi_Win32.obj 1
Error LNK2019 unresolved external symbol __imp_midiOutShortMsg referenced in function "public: void __cdecl QMidiOut::sendMsg(int)" (?sendMsg@QMidiOut@@QEAAXH@Z) QMIDI C:\Users\cpyar\Desktop\obs\build\plugins\obs-midi\src\QMidi\QMidi_Win32.obj 1
Error LNK2019 unresolved external symbol __imp_midiOutLongMsg referenced in function "public: void __cdecl QMidiOut::sendSysEx(class QByteArray const &)" (?sendSysEx@QMidiOut@@QEAAXAEBVQByteArray@@@Z) QMIDI C:\Users\cpyar\Desktop\obs\build\plugins\obs-midi\src\QMidi\QMidi_Win32.obj 1
Error LNK2019 unresolved external symbol __imp_midiInGetNumDevs referenced in function "public: static class QMap<class QString,class QString> __cdecl QMidiIn::devices(void)" (?devices@QMidiIn@@SA?AV?$QMap@VQString@@V1@@@XZ) QMIDI C:\Users\cpyar\Desktop\obs\build\plugins\obs-midi\src\QMidi\QMidi_Win32.obj 1
Error LNK2019 unresolved external symbol __imp_midiInGetDevCapsW referenced in function "public: static class QMap<class QString,class QString> __cdecl QMidiIn::devices(void)" (?devices@QMidiIn@@SA?AV?$QMap@VQString@@V1@@@XZ) QMIDI C:\Users\cpyar\Desktop\obs\build\plugins\obs-midi\src\QMidi\QMidi_Win32.obj 1
Error LNK2019 unresolved external symbol __imp_midiInOpen referenced in function "public: bool __cdecl QMidiIn::connect(class QString)" (?connect@QMidiIn@@QEAA_NVQString@@@Z) QMIDI C:\Users\cpyar\Desktop\obs\build\plugins\obs-midi\src\QMidi\QMidi_Win32.obj 1
Error LNK2019 unresolved external symbol __imp_midiInClose referenced in function "public: void __cdecl QMidiIn::disconnect(void)" (?disconnect@QMidiIn@@QEAAXXZ) QMIDI C:\Users\cpyar\Desktop\obs\build\plugins\obs-midi\src\QMidi\QMidi_Win32.obj 1
Error LNK2019 unresolved external symbol __imp_midiInPrepareHeader referenced in function "public: bool __cdecl QMidiIn::connect(class QString)" (?connect@QMidiIn@@QEAA_NVQString@@@Z) QMIDI C:\Users\cpyar\Desktop\obs\build\plugins\obs-midi\src\QMidi\QMidi_Win32.obj 1
Error LNK2019 unresolved external symbol __imp_midiInUnprepareHeader referenced in function "void __cdecl QMidiInProc(struct HMIDIIN__ *,unsigned int,unsigned __int64,unsigned __int64,unsigned __int64)" (?QMidiInProc@@YAXPEAUHMIDIIN__@@I_K11@Z) QMIDI C:\Users\cpyar\Desktop\obs\build\plugins\obs-midi\src\QMidi\QMidi_Win32.obj 1
Error LNK2019 unresolved external symbol __imp_midiInAddBuffer referenced in function "public: bool __cdecl QMidiIn::connect(class QString)" (?connect@QMidiIn@@QEAA_NVQString@@@Z) QMIDI C:\Users\cpyar\Desktop\obs\build\plugins\obs-midi\src\QMidi\QMidi_Win32.obj 1
Error LNK2019 unresolved external symbol __imp_midiInStart referenced in function "public: void __cdecl QMidiIn::start(void)" (?start@QMidiIn@@QEAAXXZ) QMIDI C:\Users\cpyar\Desktop\obs\build\plugins\obs-midi\src\QMidi\QMidi_Win32.obj 1
Error LNK2019 unresolved external symbol __imp_midiInStop referenced in function "public: void __cdecl QMidiIn::stop(void)" (?stop@QMidiIn@@QEAAXXZ) QMIDI C:\Users\cpyar\Desktop\obs\build\plugins\obs-midi\src\QMidi\QMidi_Win32.obj 1
Error LNK2019 unresolved external symbol "public: unsigned int __cdecl QMidiEvent::message(void)const " (?message@QMidiEvent@@QEBAIXZ) referenced in function "public: void __cdecl QMidiOut::sendEvent(class QMidiEvent const &)" (?sendEvent@QMidiOut@@QEAAXAEBVQMidiEvent@@@Z) QMIDI C:\Users\cpyar\Desktop\obs\build\plugins\obs-midi\src\QMidi\QMidiOut.obj 1
Error LNK1120 18 unresolved externals QMIDI C:\Users\cpyar\Desktop\obs\build\plugins\obs-midi\src\QMidi\Debug\QMIDI.dll 1
waddlesplash commented
The "Error (active)" are very strange; but the unresolved externals seem mostly to be due to a missing link to the mmsystem library. See what the qmake project files link to.
Alexander Kraus commented
I did submit a PR tackling CMake support at #23 - you might want to check if this helps with your problem
waddlesplash commented