waddlesplash / QMidi

Qt library for MIDI output & MIDI file I/O.

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

Issues trying to include with a cmake based project

cpyarger opened this issue · comments

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

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	

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.

I did submit a PR tackling CMake support at #23 - you might want to check if this helps with your problem