protože už od konce roku 2015 nebyla vydána nová verze Spectatoru a ta stávající neobsahuje později vydané opravy včetně korektně zobrazované záložky Updater, jsem se rozhodl ji podle dostupného návodu zkompilovat sám.
Komplikace bohužel skončí následující chybou. Poradíte mi, co dělám špatně, popř. ještě lépe, vydali byste novou verzi zahrnující dosud existující opravy? Pokus proběhl na Windows 8.1 s právy správce, všechny knihovny byly staženy v příslušných verzích a umístěny do správných adresářů.
C:\spectator-master-9ef0de5e163fd3f1470cd0a342cf13f0bc2a335a>spectator-build.bat
C:\spectator-master-9ef0de5e163fd3f1470cd0a342cf13f0bc2a335a>REM To use this scr
ipt you need to have QT installed to a standard location C:\Qt\ and qt was to co
ntain mingw32 compiler
C:\spectator-master-9ef0de5e163fd3f1470cd0a342cf13f0bc2a335a>REM
C:\spectator-master-9ef0de5e163fd3f1470cd0a342cf13f0bc2a335a>REM To run this scr
ipt from wine use 'wine cmd < spectator-build.bat'
C:\spectator-master-9ef0de5e163fd3f1470cd0a342cf13f0bc2a335a>REM
C:\spectator-master-9ef0de5e163fd3f1470cd0a342cf13f0bc2a335a>SET Path=C:\Qt\Qt5.
5.0\5.5\mingw492_32\bin;C:\Qt\Qt5.5.0\Tools\mingw492_32\bin;C:\Qt\Qt5.5.0\Tools\
QtCreator\bin;C:32;C:
C:\spectator-master-9ef0de5e163fd3f1470cd0a342cf13f0bc2a335a>qmake spectator.pro
C:\spectator-master-9ef0de5e163fd3f1470cd0a342cf13f0bc2a335a>mingw32-make
cd library\ && ( if not exist Makefile C:\Qt\Qt5.5.0\5.5\mingw492_32\bin\qmake.e
xe C:\spectator-master-9ef0de5e163fd3f1470cd0a342cf13f0bc2a335a\library\library.
pro -o Makefile ) && mingw32-make -f Makefile
Project MESSAGE: Spectator lib version 0.6
Project MESSAGE: Spectator lib version 0.6
Project MESSAGE: Spectator lib version 0.6
mingw32-make[1]: Entering directory 'C:/spectator-master-9ef0de5e163fd3f1470cd0a
342cf13f0bc2a335a/library'
mingw32-make -f Makefile.Release
mingw32-make[2]: Entering directory 'C:/spectator-master-9ef0de5e163fd3f1470cd0a
342cf13f0bc2a335a/library'
g++ -c -pipe -fno-keep-inline-dllexport -O2 -frtti -Wall -Wextra -fexceptions -m
threads -DUNICODE -DSPECTATOR_VERSION=\"0.6\" -DSPECTATOR_LIBRARY -DQT_NO_DEBUG
-DQT_GUI_LIB -DQT_NETWORK_LIB -DQT_XML_LIB -DQT_CORE_LIB -I. -Iinclude -I..\..\Q
t\Qt5.5.0\5.5\mingw492_32\include -I..\..\Qt\Qt5.5.0\5.5\mingw492_32\include\QtG
ui -I..\..\Qt\Qt5.5.0\5.5\mingw492_32\include\QtANGLE -I..\..\Qt\Qt5.5.0\5.5\min
gw492_32\include\QtNetwork -I..\..\Qt\Qt5.5.0\5.5\mingw492_32\include\QtXml -I..
\..\Qt\Qt5.5.0\5.5\mingw492_32\include\QtCore -Ibuild -I..\..\Qt\Qt5.5.0\5.5\min
gw492_32\mkspecs\win32-g++ -o build\logging.o src\logging.cpp
In file included from C:/Qt/Qt5.5.0/Tools/mingw492_32/i686-w64-mingw32/include/c
++/cwchar:44:0,
from C:/Qt/Qt5.5.0/Tools/mingw492_32/i686-w64-mingw32/include/c
++/bits/postypes.h:40,
from C:/Qt/Qt5.5.0/Tools/mingw492_32/i686-w64-mingw32/include/c
++/iosfwd:40,
from C:/Qt/Qt5.5.0/Tools/mingw492_32/i686-w64-mingw32/include/c
++/ios:38,
from C:/Qt/Qt5.5.0/Tools/mingw492_32/i686-w64-mingw32/include/c
++/ostream:38,
from C:/Qt/Qt5.5.0/Tools/mingw492_32/i686-w64-mingw32/include/c
++/iterator:64,
from ..\..\Qt\Qt5.5.0\5.5\mingw492_32\include/QtCore/qlist.h:42
,
from ..\..\Qt\Qt5.5.0\5.5\mingw492_32\include/QtCore/qhash.h:40
,
from ..\..\Qt\Qt5.5.0\5.5\mingw492_32\include/QtCore/qdebug.h:3
8,
from ..\..\Qt\Qt5.5.0\5.5\mingw492_32\include\QtCore/qloggingca
tegory.h:38,
from ..\..\Qt\Qt5.5.0\5.5\mingw492_32\include\QtCore/QLoggingCa
tegory:1,
from include/spectator/logging.h:25,
from src\logging.cpp:19:
include/spectator/logging.h:43:32: error: declaration of '_imp___iob' as array o
f references
extern SPECTATOR_LIB_MODE bool stdout;
^
src\logging.cpp:31:6: error: declaration of '_imp___iob' as array of references
bool stdout = false;
^
src\logging.cpp: In function 'void spectatorMessageHandler(QtMsgType, const QMes
sageLogContext&, const QString&)':
src\logging.cpp:83:24: error: expected unqualified-id before '(' token
if (SpectatorLogging::stdout || type == QtFatalMsg) {
^
Makefile.Release:396: recipe for target 'build/logging.o' failed
mingw32-make[2]: *** [build/logging.o] Error 1
mingw32-make[2]: Leaving directory 'C:/spectator-master-9ef0de5e163fd3f1470cd0a3
42cf13f0bc2a335a/library'
Makefile:34: recipe for target 'release' failed
mingw32-make[1]: *** [release] Error 2
mingw32-make[1]: Leaving directory 'C:/spectator-master-9ef0de5e163fd3f1470cd0a3
42cf13f0bc2a335a/library'
makefile:39: recipe for target 'sub-library-make_first' failed
mingw32-make: *** [sub-library-make_first] Error 2
Já se nepokouším o opravu, ale kompilaci kódu z repozitáře projektu. Úplně by mi přitom stačilo, kdyby vyšla nová verze Spectatoru, která bude již existující opravy zahrnovat.
S kompilací na windows bohužel nepomohu. Na linuxu to kompiluji proti systémovým qt knihovnám - aktuálně 5.9.4. Možná by pomohlo zkusit novější knihovny:
S požadavkem na nový build pro windows by asi bylo dobré obrátit se na někoho z turris týmu. @Tangero ?
S verzí 5.9.4 a samozřejmě upravenými cestami dopadne kompilace bohužel úplně stejně. Tentokrát vyzkoušeno na jiném počítači, taktéž s Windows 8.1 a právy správce.
A proč by nemělo? Veškeré knihovny jsou pro Window a jejich instalace i proces kompilace se spouští pod wine. Jiný důvod, než že autor má na svém pracovním počítači Linux a nechce si kvůli přípravě balíčku pro Windows instalovat tento systém nevidím, na funkčnost to nemá mít žádný vliv.
Ale jak píšu výše, pokud někdo podle příslušného návodu kompilaci provede a výsledek zpřístupní, bude to řešení tohoto vlákna. Minimálně pro autora je otázka několika minut.
To záleží na verzi wine. Třetí řada např. používá jako výchozí Windows 7, ale nemyslím, že by to mělo nějakou souvislost. Apropo, nepomohl byste s kompilací Vy?
Linky z návodu už nejsou aktuální, ale naštěstí pomohl Google.
dobrý den, Spectator není od počátku 2017 podporován. Ze systému se odstraňuje komponenta, na které závisí a není možné jej nadále udržovat v tomto stavu. Uvažujeme o větší změně, ale není to v plánu v nejbližší době.
Na Windows právě také, kromě záložky Updater, na kterou je v oficiálním repozitáři patch. Už pak nikdo Spectator nezkompiloval a původní návod na přeložení nefunguje, jak uvádím ve své zprávě na začátku tohoto vlákna. Pokuste se o to prosím.