Hello,
I have problems to compile the following C++ class with an internal enum
definition:
*foo.h:*
class Foo {
public:
Foo();
enum Bar {
Bar1 = 1,
Bar2 = 2
};
Bar getBar( ){ return Bar1; };
};
*foo.cpp:*
#include <stdio.h>
#include "foo.h"
Foo::Foo()
{
printf("Constructor of Foo\n");
}
#include "glue.cpp"
*foo.idl:*
enum Foo_Bar {
"Foo::Bar1",
"Foo::Bar2"
};
interface Foo {
void Foo();
Foo_Bar getBar();
};
*build flow:*
python ${EMSCRIPTEN}/tools/webidl_binder.py foo.idl glue
emcc foo.cpp --post-js glue.js -o foo.js --memory-init-file 0
*emcc -v:*
emcc (Emscripten gcc/clang-like replacement + linker emulating GNU ld)
1.34.1
clang version 3.7.0 (https://github.com/kripken/emscripten-fastcomp-clang/
d0bf104be3b7fb821711438ab9a26dabc3bc6cd9)
(https://github.com/kripken/emscripten-fastcomp/
6ce52965507b262417a7e815fd46e8e92f351b12)
Target: x86_64-unknown-linux-gnu
Thread model: posix
Found candidate GCC installation: /usr/lib/gcc/i686-linux-gnu/4.8
Found candidate GCC installation: /usr/lib/gcc/i686-linux-gnu/4.8.4
Found candidate GCC installation: /usr/lib/gcc/i686-linux-gnu/4.9
Found candidate GCC installation: /usr/lib/gcc/i686-linux-gnu/4.9.1
Found candidate GCC installation: /usr/lib/gcc/x86_64-linux-gnu/4.8
Found candidate GCC installation: /usr/lib/gcc/x86_64-linux-gnu/4.8.4
Found candidate GCC installation: /usr/lib/gcc/x86_64-linux-gnu/4.9
Found candidate GCC installation: /usr/lib/gcc/x86_64-linux-gnu/4.9.1
Selected GCC installation: /usr/lib/gcc/x86_64-linux-gnu/4.8
Candidate multilib: .;@m64
Selected multilib: .;@m64
INFO root: (Emscripten: Running sanity checks)
*error:*
In file included from foo.cpp:10:
./glue.cpp:27:1: error: unknown type name 'Foo_Bar'
Foo_Bar EMSCRIPTEN_KEEPALIVE emscripten_bind_Foo_getBar_0(Foo* self) {
^
./glue.cpp:27:9: error: expected unqualified-id
Foo_Bar EMSCRIPTEN_KEEPALIVE emscripten_bind_Foo_getBar_0(Foo* self) {
^
/opt/emsdk/emscripten/incoming/system/include/emscripten/emscripten.h:60:30:
note:
expanded from macro 'EMSCRIPTEN_KEEPALIVE'
#define EMSCRIPTEN_KEEPALIVE __attribute__((used))
^
In file included from foo.cpp:10:
./glue.cpp:36:1: error: unknown type name 'Foo_Bar'
Foo_Bar EMSCRIPTEN_KEEPALIVE emscripten_enum_Foo_Bar_Bar1() {
^
./glue.cpp:36:9: error: expected unqualified-id
Foo_Bar EMSCRIPTEN_KEEPALIVE emscripten_enum_Foo_Bar_Bar1() {
^
/opt/emsdk/emscripten/incoming/system/include/emscripten/emscripten.h:60:30:
note:
expanded from macro 'EMSCRIPTEN_KEEPALIVE'
#define EMSCRIPTEN_KEEPALIVE __attribute__((used))
^
In file included from foo.cpp:10:
./glue.cpp:39:1: error: unknown type name 'Foo_Bar'
Foo_Bar EMSCRIPTEN_KEEPALIVE emscripten_enum_Foo_Bar_Bar2() {
^
./glue.cpp:39:9: error: expected unqualified-id
Foo_Bar EMSCRIPTEN_KEEPALIVE emscripten_enum_Foo_Bar_Bar2() {
^
/opt/emsdk/emscripten/incoming/system/include/emscripten/emscripten.h:60:30:
note:
expanded from macro 'EMSCRIPTEN_KEEPALIVE'
#define EMSCRIPTEN_KEEPALIVE __attribute__((used))
^
6 errors generated.
ERROR root: compiler frontend failed to generate LLVM bitcode, halting
Any idea what I am doing wrong? Thanks for your help!
Christian
--
You received this message because you are subscribed to the Google Groups
"emscripten-discuss" group.
To unsubscribe from this group and stop receiving emails from it, send an email
to [email protected].
For more options, visit https://groups.google.com/d/optout.