Compilation error: missing binary operator before token "("

You name it!
Post Reply
textchimp
Newbie
Posts: 2
Joined: Sat Nov 03, 2012 1:42 am

Compilation error: missing binary operator before token "("

Post by textchimp » Sat Nov 03, 2012 1:53 am

Hi all,

I'm trying to compile LinuxSampler from SVN on Ubuntu 10.04 for the first time, and my build died with the following cascade of errors. The errors seem to be originating in system files, such as /usr/include/sys/cdefs.h, which is weird. I've already compiled and installed libgig and liblscp from SVN without problems.

If anyone can suggest what I need to do, that would be great.

Thanks!

(This log is from running 'make' again after it died the first time. Config.log file here: http://pastebin.com/VjX9hn2x)

Code: Select all

textchimp:/build/linuxsampler/linuxsampler$ make
make  all-recursive
make[1]: Entering directory `/media/DATA2/build/linuxsampler/linuxsampler'
Making all in man
make[2]: Entering directory `/media/DATA2/build/linuxsampler/linuxsampler/man'
make[2]: Nothing to be done for `all'.
make[2]: Leaving directory `/media/DATA2/build/linuxsampler/linuxsampler/man'
Making all in src
make[2]: Entering directory `/media/DATA2/build/linuxsampler/linuxsampler/src'
Making all in db
make[3]: Entering directory `/media/DATA2/build/linuxsampler/linuxsampler/src/db'
make[3]: Nothing to be done for `all'.
make[3]: Leaving directory `/media/DATA2/build/linuxsampler/linuxsampler/src/db'
Making all in network
make[3]: Entering directory `/media/DATA2/build/linuxsampler/linuxsampler/src/network'
make[3]: Nothing to be done for `all'.
make[3]: Leaving directory `/media/DATA2/build/linuxsampler/linuxsampler/src/network'
Making all in engines
make[3]: Entering directory `/media/DATA2/build/linuxsampler/linuxsampler/src/engines'
Making all in gig
make[4]: Entering directory `/media/DATA2/build/linuxsampler/linuxsampler/src/engines/gig'
make[4]: Nothing to be done for `all'.
make[4]: Leaving directory `/media/DATA2/build/linuxsampler/linuxsampler/src/engines/gig'
Making all in sf2
make[4]: Entering directory `/media/DATA2/build/linuxsampler/linuxsampler/src/engines/sf2'
make[4]: Nothing to be done for `all'.
make[4]: Leaving directory `/media/DATA2/build/linuxsampler/linuxsampler/src/engines/sf2'
Making all in sfz
make[4]: Entering directory `/media/DATA2/build/linuxsampler/linuxsampler/src/engines/sfz'
make[4]: Nothing to be done for `all'.
make[4]: Leaving directory `/media/DATA2/build/linuxsampler/linuxsampler/src/engines/sfz'
Making all in common
make[4]: Entering directory `/media/DATA2/build/linuxsampler/linuxsampler/src/engines/common'
make[4]: Nothing to be done for `all'.
make[4]: Leaving directory `/media/DATA2/build/linuxsampler/linuxsampler/src/engines/common'
make[4]: Entering directory `/media/DATA2/build/linuxsampler/linuxsampler/src/engines'
make[4]: Nothing to be done for `all-am'.
make[4]: Leaving directory `/media/DATA2/build/linuxsampler/linuxsampler/src/engines'
make[3]: Leaving directory `/media/DATA2/build/linuxsampler/linuxsampler/src/engines'
Making all in common
make[3]: Entering directory `/media/DATA2/build/linuxsampler/linuxsampler/src/common'
/bin/bash ../../libtool --tag=CXX   --mode=compile g++ -DHAVE_CONFIG_H -I. -I../..    -Wreturn-type -ffast-math -march=i686 -g -O2 -pthread -MT DynamicLibraries.lo -MD -MP -MF .deps/DynamicLibraries.Tpo -c -o DynamicLibraries.lo DynamicLibraries.cpp
libtool: compile:  g++ -DHAVE_CONFIG_H -I. -I../.. -Wreturn-type -ffast-math -march=i686 -g -O2 -pthread -MT DynamicLibraries.lo -MD -MP -MF .deps/DynamicLibraries.Tpo -c DynamicLibraries.cpp  -fPIC -DPIC -o .libs/DynamicLibraries.o
In file included from /usr/include/libio.h:62,
                 from /usr/include/stdio.h:75,
                 from ./global.h:32,
                 from ./global_private.h:30,
                 from ./features.h:27,
                 from /usr/include/c++/4.4/i486-linux-gnu/bits/os_defines.h:39,
                 from /usr/include/c++/4.4/i486-linux-gnu/bits/c++config.h:243,
                 from /usr/include/c++/4.4/exception:37,
                 from /usr/include/c++/4.4/stdexcept:38,
                 from Exception.h:27,
                 from DynamicLibraries.h:8,
                 from DynamicLibraries.cpp:5:
/usr/include/sys/cdefs.h:46:44: error: missing binary operator before token "("
/usr/include/sys/cdefs.h:50:44: error: missing binary operator before token "("
/usr/include/sys/cdefs.h:135:19: error: missing binary operator before token "("
/usr/include/sys/cdefs.h:148:19: error: missing binary operator before token "("
/usr/include/sys/cdefs.h:206:19: error: missing binary operator before token "("
/usr/include/sys/cdefs.h:215:19: error: missing binary operator before token "("
/usr/include/sys/cdefs.h:224:19: error: missing binary operator before token "("
/usr/include/sys/cdefs.h:233:19: error: missing binary operator before token "("
/usr/include/sys/cdefs.h:245:19: error: missing binary operator before token "("
/usr/include/sys/cdefs.h:255:19: error: missing binary operator before token "("
/usr/include/sys/cdefs.h:264:19: error: missing binary operator before token "("
/usr/include/sys/cdefs.h:272:19: error: missing binary operator before token "("
/usr/include/sys/cdefs.h:286:19: error: missing binary operator before token "("
/usr/include/sys/cdefs.h:294:43: error: missing binary operator before token "("
/usr/include/sys/cdefs.h:317:19: error: missing binary operator before token "("
/usr/include/sys/cdefs.h:326:20: error: missing binary operator before token "("
/usr/include/sys/cdefs.h:331:20: error: missing binary operator before token "("
/usr/include/sys/cdefs.h:338:19: error: missing binary operator before token "("
In file included from ./global.h:57,
                 from ./global_private.h:30,
                 from ./features.h:27,
                 from /usr/include/c++/4.4/i486-linux-gnu/bits/os_defines.h:39,
                 from /usr/include/c++/4.4/i486-linux-gnu/bits/c++config.h:243,
                 from /usr/include/c++/4.4/exception:37,
                 from /usr/include/c++/4.4/stdexcept:38,
                 from Exception.h:27,
                 from DynamicLibraries.h:8,
                 from DynamicLibraries.cpp:5:
/usr/include/sys/types.h:158:20: error: missing binary operator before token "("
In file included from DynamicLibraries.cpp:17:
/usr/include/string.h:36:42: error: missing binary operator before token "("
In file included from ./global.h:30,
                 from ./global_private.h:30,
                 from ./features.h:27,
                 from /usr/include/c++/4.4/i486-linux-gnu/bits/os_defines.h:39,
                 from /usr/include/c++/4.4/i486-linux-gnu/bits/c++config.h:243,
                 from /usr/include/c++/4.4/exception:37,
                 from /usr/include/c++/4.4/stdexcept:38,
                 from Exception.h:27,
                 from DynamicLibraries.h:8,
                 from DynamicLibraries.cpp:5:
/usr/include/stdlib.h:35: error: ‘__BEGIN_DECLS’ does not name a type
/usr/include/stdlib.h:102: error: expected constructor, destructor, or type conversion before ‘;’ token
/usr/include/stdlib.h:140: error: expected constructor, destructor, or type conversion before ‘extern’
/usr/include/stdlib.h:145: error: expected constructor, destructor, or type conversion before ‘extern’
/usr/include/stdlib.h:149: error: expected initializer before ‘__THROW’
/usr/include/stdlib.h:152: error: expected initializer before ‘__THROW’
/usr/include/stdlib.h:153: error: ‘__END_NAMESPACE_STD’ does not name a type
/usr/include/stdlib.h:168: error: ‘__END_NAMESPACE_STD’ does not name a type
/usr/include/stdlib.h:190: error: expected initializer before ‘__THROW’
/usr/include/stdlib.h:191: error: ‘__END_NAMESPACE_STD’ does not name a type
/usr/include/stdlib.h:382: error: expected initializer before ‘__THROW’
/usr/include/stdlib.h:383: error: ‘__END_NAMESPACE_STD’ does not name a type
/usr/include/stdlib.h:474: error: expected initializer before ‘__THROW’
/usr/include/stdlib.h:475: error: ‘__END_NAMESPACE_STD’ does not name a type
/usr/include/stdlib.h:488: error: expected initializer before ‘__THROW’
/usr/include/stdlib.h:489: error: ‘__END_NAMESPACE_STD’ does not name a type
/usr/include/stdlib.h:517: error: expected initializer before ‘__THROW’
/usr/include/stdlib.h:530: error: ‘__END_NAMESPACE_STD’ does not name a type
/usr/include/stdlib.h:553: error: ‘__END_NAMESPACE_STD’ does not name a type
/usr/include/stdlib.h:571: error: expected constructor, destructor, or type conversion before ‘extern’
/usr/include/stdlib.h:712: error: expected constructor, destructor, or type conversion before ‘extern’
/usr/include/stdlib.h:737: error: expected constructor, destructor, or type conversion before ‘typedef’
/usr/include/stdlib.h:750: error: expected constructor, destructor, or type conversion before ‘extern’
/usr/include/stdlib.h:757: error: ‘__compar_fn_t’ has not been declared
/usr/include/stdlib.h:757: error: expected initializer before ‘__nonnull’
/usr/include/stdlib.h:766: error: expected initializer before ‘__THROW’
/usr/include/stdlib.h:767: error: expected initializer before ‘__THROW’
/usr/include/stdlib.h:768: error: ‘__END_NAMESPACE_STD’ does not name a type
/usr/include/stdlib.h:783: error: expected initializer before ‘__THROW’
/usr/include/stdlib.h:784: error: ‘__END_NAMESPACE_STD’ does not name a type
/usr/include/stdlib.h:858: error: expected initializer before ‘__THROW’
/usr/include/stdlib.h:861: error: expected initializer before ‘__THROW’
/usr/include/stdlib.h:866: error: expected initializer before ‘__THROW’
/usr/include/stdlib.h:870: error: expected initializer before ‘__THROW’
/usr/include/stdlib.h:871: error: ‘__END_NAMESPACE_STD’ does not name a type
In file included from /usr/include/stdio.h:36,
                 from ./global.h:32,
                 from ./global_private.h:30,
                 from ./features.h:27,
                 from /usr/include/c++/4.4/i486-linux-gnu/bits/os_defines.h:39,
                 from /usr/include/c++/4.4/i486-linux-gnu/bits/c++config.h:243,
                 from /usr/include/c++/4.4/exception:37,
                 from /usr/include/c++/4.4/stdexcept:38,
                 from Exception.h:27,
                 from DynamicLibraries.h:8,
                 from DynamicLibraries.cpp:5:
/usr/include/bits/types.h:31: error: expected constructor, destructor, or type conversion before ‘typedef’
In file included from ./global.h:32,
                 from ./global_private.h:30,
                 from ./features.h:27,
                 from /usr/include/c++/4.4/i486-linux-gnu/bits/os_defines.h:39,
                 from /usr/include/c++/4.4/i486-linux-gnu/bits/c++config.h:243,
                 from /usr/include/c++/4.4/exception:37,
                 from /usr/include/c++/4.4/stdexcept:38,
                 from Exception.h:27,
                 from DynamicLibraries.h:8,
                 from DynamicLibraries.cpp:5:
/usr/include/stdio.h:49: error: expected constructor, destructor, or type conversion before ‘typedef’
/usr/include/stdio.h:65: error: expected constructor, destructor, or type conversion before ‘typedef’
In file included from ./global.h:32,
                 from ./global_private.h:30,
                 from ./features.h:27,
                 from /usr/include/c++/4.4/i486-linux-gnu/bits/os_defines.h:39,
                 from /usr/include/c++/4.4/i486-linux-gnu/bits/c++config.h:243,
                 from /usr/include/c++/4.4/exception:37,
                 from /usr/include/c++/4.4/stdexcept:38,
                 from Exception.h:27,
                 from DynamicLibraries.h:8,
                 from DynamicLibraries.cpp:5:
/usr/include/stdio.h:172: error: expected initializer before ‘*’ token
/usr/include/stdio.h:214: error: ‘FILE’ was not declared in this scope
/usr/include/stdio.h:214: error: ‘__stream’ was not declared in this scope
/usr/include/stdio.h:219: error: ‘FILE’ was not declared in this scope
/usr/include/stdio.h:219: error: ‘__stream’ was not declared in this scope
/usr/include/stdio.h:249: error: expected initializer before ‘*’ token
/usr/include/stdio.h:255: error: expected initializer before ‘*’ token
/usr/include/stdio.h:309: error: variable or field ‘setbuf’ declared void
/usr/include/stdio.h:309: error: ‘FILE’ was not declared in this scope
/usr/include/stdio.h:309: error: expected primary-expression before ‘__restrict__’
/usr/include/stdio.h:309: error: expected primary-expression before ‘char’
/usr/include/stdio.h:313: error: ‘FILE’ was not declared in this scope
/usr/include/stdio.h:313: error: expected primary-expression before ‘__restrict__’
/usr/include/stdio.h:313: error: expected primary-expression before ‘char’
/usr/include/stdio.h:314: error: expected primary-expression before ‘int’
/usr/include/stdio.h:314: error: expected primary-expression before ‘__n’
/usr/include/stdio.h:314: error: initializer expression list treated as compound expression
/usr/include/stdio.h:333: error: ‘FILE’ was not declared in this scope
/usr/include/stdio.h:333: error: expected primary-expression before ‘__restrict__’
/usr/include/stdio.h:334: error: expected primary-expression before ‘const’
/usr/include/stdio.h:334: error: expected primary-expression before ‘...’ token
/usr/include/stdio.h:334: error: initializer expression list treated as compound expression
/usr/include/stdio.h:348: error: ‘FILE’ was not declared in this scope
/usr/include/stdio.h:348: error: expected primary-expression before ‘__restrict__’
/usr/include/stdio.h:348: error: expected primary-expression before ‘const’
/usr/include/stdio.h:349: error: expected primary-expression before ‘__arg’
/usr/include/stdio.h:349: error: initializer expression list treated as compound expression
/usr/include/stdio.h:407: error: ‘FILE’ was not declared in this scope
/usr/include/stdio.h:407: error: expected primary-expression before ‘__restrict__’
/usr/include/stdio.h:408: error: expected primary-expression before ‘const’
/usr/include/stdio.h:408: error: expected primary-expression before ‘...’ token
/usr/include/stdio.h:408: error: initializer expression list treated as compound expression
/usr/include/stdio.h:513: error: ‘FILE’ was not declared in this scope
/usr/include/stdio.h:513: error: ‘__stream’ was not declared in this scope
/usr/include/stdio.h:514: error: ‘FILE’ was not declared in this scope
/usr/include/stdio.h:514: error: ‘__stream’ was not declared in this scope
/usr/include/stdio.h:555: error: ‘FILE’ has not been declared
/usr/include/stdio.h:556: error: ‘FILE’ has not been declared
/usr/include/stdio.h:604: error: ‘FILE’ has not been declared
/usr/include/stdio.h:662: error: ‘FILE’ has not been declared
/usr/include/stdio.h:675: error: ‘FILE’ has not been declared
/usr/include/stdio.h:683: error: ‘FILE’ has not been declared
/usr/include/stdio.h:689: error: ‘FILE’ has not been declared
/usr/include/stdio.h:722: error: ‘FILE’ was not declared in this scope
/usr/include/stdio.h:722: error: ‘__stream’ was not declared in this scope
/usr/include/stdio.h:722: error: expected primary-expression before ‘long’
/usr/include/stdio.h:722: error: expected primary-expression before ‘int’
/usr/include/stdio.h:722: error: initializer expression list treated as compound expression
/usr/include/stdio.h:727: error: ‘FILE’ was not declared in this scope
/usr/include/stdio.h:727: error: ‘__stream’ was not declared in this scope
/usr/include/stdio.h:732: error: variable or field ‘rewind’ declared void
/usr/include/stdio.h:732: error: ‘FILE’ was not declared in this scope
/usr/include/stdio.h:732: error: ‘__stream’ was not declared in this scope
/usr/include/stdio.h:771: error: ‘FILE’ was not declared in this scope
/usr/include/stdio.h:771: error: expected primary-expression before ‘__restrict__’
/usr/include/stdio.h:771: error: expected primary-expression before ‘*’ token
/usr/include/stdio.h:771: error: expected primary-expression before ‘__restrict__’
/usr/include/stdio.h:771: error: initializer expression list treated as compound expression
/usr/include/stdio.h:776: error: ‘FILE’ was not declared in this scope
/usr/include/stdio.h:776: error: ‘__stream’ was not declared in this scope
/usr/include/stdio.h:776: error: expected primary-expression before ‘const’
/usr/include/stdio.h:776: error: initializer expression list treated as compound expression
/usr/include/stdio.h:799: error: variable or field ‘clearerr’ declared void
/usr/include/stdio.h:799: error: ‘FILE’ was not declared in this scope
/usr/include/stdio.h:799: error: ‘__stream’ was not declared in this scope
/usr/include/stdio.h:801: error: ‘FILE’ was not declared in this scope
/usr/include/stdio.h:801: error: ‘__stream’ was not declared in this scope
/usr/include/stdio.h:803: error: ‘FILE’ was not declared in this scope
/usr/include/stdio.h:803: error: ‘__stream’ was not declared in this scope
In file included from ./global.h:32,
                 from ./global_private.h:30,
                 from ./features.h:27,
                 from /usr/include/c++/4.4/i486-linux-gnu/bits/os_defines.h:39,
                 from /usr/include/c++/4.4/i486-linux-gnu/bits/c++config.h:243,
                 from /usr/include/c++/4.4/exception:37,
                 from /usr/include/c++/4.4/stdexcept:38,
                 from Exception.h:27,
                 from DynamicLibraries.h:8,
                 from DynamicLibraries.cpp:5:
/usr/include/stdio.h:916: error: expected declaration before ‘}’ token
make[3]: *** [DynamicLibraries.lo] Error 1
make[3]: Leaving directory `/media/DATA2/build/linuxsampler/linuxsampler/src/common'
make[2]: *** [all-recursive] Error 1
make[2]: Leaving directory `/media/DATA2/build/linuxsampler/linuxsampler/src'
make[1]: *** [all-recursive] Error 1
make[1]: Leaving directory `/media/DATA2/build/linuxsampler/linuxsampler'
make: *** [all] Error 2


textchimp
Newbie
Posts: 2
Joined: Sat Nov 03, 2012 1:42 am

Re: Compilation error: missing binary operator before token

Post by textchimp » Fri Nov 16, 2012 2:47 pm

Does no-one have any idea what is causing this?

A bit more information:

Regarding the first error, /usr/include/sys/cdefs.h:46:44: error: missing binary operator before token "("
Line 46 reads

Code: Select all

 # if !defined __cplusplus && __GNUC_PREREQ (3, 3)
THe problem seems to be that the __GNUC_PREREQ macro is not defined. I don't know why this is, but if I add a standard definition to the file, such as

Code: Select all

#ifndef __GNUC_PREREQ
 #if defined __GNUC__ && defined __GNUC_MINOR__
  #define __GNUC_PREREQ(maj, min) \
 ((__GNUC__ << 16) + __GNUC_MINOR__ >= ((maj) << 16) + (min))
 #else
  #define __GNUC_PREREQ(maj, min) 0
 #endif
#endif
then the problem seems to be solved and the compiler moves on to the next error, i.e.
/usr/include/stdlib.h:35: error: ‘__BEGIN_DECLS’ does not name a type

Now __BEGIN_DECLS seems a pretty basic macro, but again something is going wrong with the definition of it. If I again add a standard macro def I found online:

Code: Select all

#ifndef __cplusplus
# define __BEGIN_DECLS extern "C" {
# define __END_DECLS }
#else
# define __BEGIN_DECLS /* empty */
# define __END_DECLS /* empty */
#endif
..then the compiler moves on to the next error :
/usr/include/stdlib.h:149: error: expected initializer before ‘__THROW’
which is caused by this line

Code: Select all

extern size_t __ctype_get_mb_cur_max (void) __THROW __wur;
Again, more macro definition errors.

I'm still not sure what is going on here, but I can compile everything on my system without problems, so I'm assuming it has something to do with the config process for Linuxsampler, or the order of include directories, or the like. Can anyone help me get this thing compiled? I need SFZ and SF2 support in my LinuxSampler!

Thanks.

Post Reply