Can't Build VS2010 due to TinyLib/SockStream error

Forum for software developers to discuss BCI2000 software development
Locked
mstrobel
Posts: 2
Joined: 31 Jul 2014, 08:49

Can't Build VS2010 due to TinyLib/SockStream error

Post by mstrobel » 08 Aug 2014, 14:31

Hi,

I'm currently start working on my master thesis and I try to get BCI2000 working on a Win XP x32 or a Win 7 x32 Virtual Machine.

I've downloaded the latest revision from svn and downloaded Visual C++ Express 2010.
I used cmake 2.8 (tested it also with 3.0) to generate a vs2010 solution and it seemed to work well (using external qt 4.8.6 or qt downloaded 4.7.0 from bci2000 worked also).

When I try to build the operator module, then I get build errors while compiling the TinyLib.dll, because of some errors in the SockStream.cpp and MemoryBuffer.cpp.
------ Erstellen gestartet: Projekt: ZERO_CHECK, Konfiguration: Release Win32 ------
------ Erstellen gestartet: Projekt: LibTiny, Konfiguration: Release Win32 ------
sockstream.cpp
..\..\..\..\src\shared\utils\Lib\sockstream.cpp(864): error C2780: 'const _Ty &std::max(const _Ty &,const _Ty &,_Pr)': Erwartet 3 Argumente - 2 unterstützt
C:\Programme\Microsoft Visual Studio 10.0\VC\include\xutility(2086): Siehe Deklaration von 'std::max'
..\..\..\..\src\shared\utils\Lib\sockstream.cpp(864): error C2782: "const _Ty &std::max(const _Ty &,const _Ty &)": template-Parameter "_Ty" ist mehrdeutig.
C:\Programme\Microsoft Visual Studio 10.0\VC\include\xutility(2078): Siehe Deklaration von 'std::max'
kann 'int' sein
oder "std::streamsize"
..\..\..\..\src\shared\utils\Lib\sockstream.cpp(897): error C2780: 'const _Ty &std::min(const _Ty &,const _Ty &,_Pr)': Erwartet 3 Argumente - 2 unterstützt
C:\Programme\Microsoft Visual Studio 10.0\VC\include\xutility(2101): Siehe Deklaration von 'std::min'
..\..\..\..\src\shared\utils\Lib\sockstream.cpp(897): error C2782: "const _Ty &std::min(const _Ty &,const _Ty &)": template-Parameter "_Ty" ist mehrdeutig.
C:\Programme\Microsoft Visual Studio 10.0\VC\include\xutility(2093): Siehe Deklaration von 'std::min'
kann 'int' sein
oder "std::streamsize"
..\..\..\..\src\shared\utils\Lib\sockstream.cpp(898): warning C4244: 'Argument': Konvertierung von 'std::streamsize' in 'size_t', möglicher Datenverlust
..\..\..\..\src\shared\utils\Lib\sockstream.cpp(899): warning C4244: 'Argument': Konvertierung von 'std::streamsize' in 'int', möglicher Datenverlust
..\..\..\..\src\shared\utils\Lib\sockstream.cpp(911): warning C4244: 'Argument': Konvertierung von 'std::streamsize' in 'size_t', möglicher Datenverlust
..\..\..\..\src\shared\utils\Lib\sockstream.cpp(912): warning C4244: 'Argument': Konvertierung von 'std::streamsize' in 'int', möglicher Datenverlust
..\..\..\..\src\shared\utils\Lib\sockstream.cpp(974): warning C4244: 'Initialisierung': Konvertierung von 'std::streamsize' in 'int', möglicher Datenverlust
..\..\..\..\src\shared\utils\Lib\sockstream.cpp(983): warning C4244: 'Initialisierung': Konvertierung von 'std::streamsize' in 'int', möglicher Datenverlust
MemoryBuffer.cpp
..\..\..\..\src\shared\utils\Lib\MemoryBuffer.cpp(82): error C2780: 'const _Ty &std::min(const _Ty &,const _Ty &,_Pr)': Erwartet 3 Argumente - 2 unterstützt
C:\Programme\Microsoft Visual Studio 10.0\VC\include\xutility(2101): Siehe Deklaration von 'std::min'
..\..\..\..\src\shared\utils\Lib\MemoryBuffer.cpp(82): error C2782: "const _Ty &std::min(const _Ty &,const _Ty &)": template-Parameter "_Ty" ist mehrdeutig.
C:\Programme\Microsoft Visual Studio 10.0\VC\include\xutility(2093): Siehe Deklaration von 'std::min'
kann 'std::streamsize' sein
oder "int"
..\..\..\..\src\shared\utils\Lib\MemoryBuffer.cpp(90): warning C4244: 'Argument': Konvertierung von 'std::streamsize' in 'size_t', möglicher Datenverlust
..\..\..\..\src\shared\utils\Lib\MemoryBuffer.cpp(101): warning C4244: 'Argument': Konvertierung von 'std::streamoff' in 'ptrdiff_t', möglicher Datenverlust
..\..\..\..\src\shared\utils\Lib\MemoryBuffer.cpp(116): error C2780: 'const _Ty &std::min(const _Ty &,const _Ty &,_Pr)': Erwartet 3 Argumente - 2 unterstützt
C:\Programme\Microsoft Visual Studio 10.0\VC\include\xutility(2101): Siehe Deklaration von 'std::min'
..\..\..\..\src\shared\utils\Lib\MemoryBuffer.cpp(116): error C2782: "const _Ty &std::min(const _Ty &,const _Ty &)": template-Parameter "_Ty" ist mehrdeutig.
C:\Programme\Microsoft Visual Studio 10.0\VC\include\xutility(2093): Siehe Deklaration von 'std::min'
kann 'std::streamsize' sein
oder "int"
..\..\..\..\src\shared\utils\Lib\MemoryBuffer.cpp(119): warning C4244: 'Argument': Konvertierung von 'std::streamsize' in 'size_t', möglicher Datenverlust
..\..\..\..\src\shared\utils\Lib\MemoryBuffer.cpp(128): warning C4244: 'Argument': Konvertierung von 'std::streamsize' in 'size_t', möglicher Datenverlust
Code wird generiert...
------ Erstellen gestartet: Projekt: OperatorLib, Konfiguration: Release Win32 ------
LINK : fatal error LNK1181: Eingabedatei "..\..\..\frameworks\LibTiny\Release\LibTiny.lib" kann nicht geöffnet werden.
------ Erstellen gestartet: Projekt: Operator, Konfiguration: Release Win32 ------
LINK : fatal error LNK1181: Eingabedatei "..\..\..\frameworks\LibTiny\Release\LibTiny.lib" kann nicht geöffnet werden.
========== Erstellen: 1 erfolgreich, Fehler bei 3, 1 aktuell, 0 übersprungen ==========
Fehler 1 error C2780: 'const _Ty &std::max(const _Ty &,const _Ty &,_Pr)': Erwartet 3 Argumente - 2 unterstützt D:\BCI2000\dev\trunk\src\shared\utils\Lib\sockstream.cpp 864
Fehler 2 error C2782: "const _Ty &std::max(const _Ty &,const _Ty &)": template-Parameter "_Ty" ist mehrdeutig. D:\BCI2000\dev\trunk\src\shared\utils\Lib\sockstream.cpp 864
Fehler 3 error C2780: 'const _Ty &std::min(const _Ty &,const _Ty &,_Pr)': Erwartet 3 Argumente - 2 unterstützt D:\BCI2000\dev\trunk\src\shared\utils\Lib\sockstream.cpp 897
Fehler 4 error C2782: "const _Ty &std::min(const _Ty &,const _Ty &)": template-Parameter "_Ty" ist mehrdeutig. D:\BCI2000\dev\trunk\src\shared\utils\Lib\sockstream.cpp 897
Fehler 11 error C2780: 'const _Ty &std::min(const _Ty &,const _Ty &,_Pr)': Erwartet 3 Argumente - 2 unterstützt D:\BCI2000\dev\trunk\src\shared\utils\Lib\MemoryBuffer.cpp 82
Fehler 12 error C2782: "const _Ty &std::min(const _Ty &,const _Ty &)": template-Parameter "_Ty" ist mehrdeutig. D:\BCI2000\dev\trunk\src\shared\utils\Lib\MemoryBuffer.cpp 82
Fehler 15 error C2780: 'const _Ty &std::min(const _Ty &,const _Ty &,_Pr)': Erwartet 3 Argumente - 2 unterstützt D:\BCI2000\dev\trunk\src\shared\utils\Lib\MemoryBuffer.cpp 116
Fehler 16 error C2782: "const _Ty &std::min(const _Ty &,const _Ty &)": template-Parameter "_Ty" ist mehrdeutig. D:\BCI2000\dev\trunk\src\shared\utils\Lib\MemoryBuffer.cpp 116
Fehler 19 error LNK1181: Eingabedatei "..\..\..\frameworks\LibTiny\Release\LibTiny.lib" kann nicht geöffnet werden. D:\BCI2000\dev\trunk\vs2010_32_dynamic\CMakeFiles\core\Operator\OperatorLib\LINK
Fehler 20 error LNK1181: Eingabedatei "..\..\..\frameworks\LibTiny\Release\LibTiny.lib" kann nicht geöffnet werden. D:\BCI2000\dev\trunk\vs2010_32_dynamic\CMakeFiles\core\Operator\OperatorQt\LINK
I didn't change any source code, so I think it should work as it is described in the wiki.
Maybe there is an easy solution for this, but I'm not that familiar with C++ yet (I'm working on it).
Therefore I hope someone can help me to fix this problem.


thanks in advance,
Markus

boulay
Posts: 382
Joined: 25 Dec 2011, 21:14

Re: Can't Build VS2010 due to TinyLib/SockStream error

Post by boulay » 10 Aug 2014, 23:42

I haven't looked at the commit logs, but I know there were some bugs with the BCI2000 source not too long ago. You're better off downloading a binary release.

If you need the source (e.g., to make your own modules) then you should download the SVN at a revision that matches the latest binary release.

mstrobel
Posts: 2
Joined: 31 Jul 2014, 08:49

Re: Can't Build VS2010 due to TinyLib/SockStream error

Post by mstrobel » 14 Aug 2014, 07:52

Thank you very much :)

I took revision 4230 (Release 3.0.5) and it worked well :)

boulay
Posts: 382
Joined: 25 Dec 2011, 21:14

Re: Can't Build VS2010 due to TinyLib/SockStream error

Post by boulay » 02 Sep 2014, 00:27

Just now I had the same problem and I was able to fix it by changing the min and max function calls to use the ternary operator. (In the link they call it the 'tertiary' operator.)

Locked

Who is online

Users browsing this forum: No registered users and 1 guest