Errors compiling bsnes-0.039

Archived bsnes development news, feature requests and bug reports. Forum is now located at http://board.byuu.org/
Locked
AFCommando
New Member
Posts: 3
Joined: Fri Feb 27, 2009 9:26 am

Errors compiling bsnes-0.039

Post by AFCommando »

I'm having problems compiling bsnes, I always get this error:

make platform=x compiler=gcc
g++ -O3 -fomit-frame-pointer -Ilib -c ui/main.cpp -o obj/main.o
gcc -O3 -fomit-frame-pointer -Ilib -static -c lib/libco/libco.c -o obj/libco.o
g++ -O3 -fomit-frame-pointer -Ilib `pkg-config --cflags gtk+-2.0` -c lib/hiro/hiro.cpp -o obj/hiro.o
g++ -O3 -fomit-frame-pointer -Ilib -DVIDEO_XV -DAUDIO_ALSA -DINPUT_X -c lib/ruby/ruby.cpp -o obj/ruby.o
In file included from lib/ruby/input/x.cpp:15,
from lib/ruby/ruby_impl.cpp:68,
from lib/ruby/ruby.cpp:2:
lib/ruby/input/xlibkeys.hpp: In member function ‘bool ruby::pInputX::init_keycodes()’:
lib/ruby/input/xlibkeys.hpp:18: error: ‘keyboard’ has not been declared
lib/ruby/input/xlibkeys.hpp:20: error: ‘keyboard’ has not been declared
lib/ruby/input/xlibkeys.hpp:21: error: ‘keyboard’ has not been declared
lib/ruby/input/xlibkeys.hpp:22: error: ‘keyboard’ has not been declared
lib/ruby/input/xlibkeys.hpp:23: error: ‘keyboard’ has not been declared
lib/ruby/input/xlibkeys.hpp:24: error: ‘keyboard’ has not been declared
lib/ruby/input/xlibkeys.hpp:25: error: ‘keyboard’ has not been declared
lib/ruby/input/xlibkeys.hpp:26: error: ‘keyboard’ has not been declared
lib/ruby/input/xlibkeys.hpp:27: error: ‘keyboard’ has not been declared
lib/ruby/input/xlibkeys.hpp:28: error: ‘keyboard’ has not been declared
lib/ruby/input/xlibkeys.hpp:29: error: ‘keyboard’ has not been declared
lib/ruby/input/xlibkeys.hpp:30: error: ‘keyboard’ has not been declared
lib/ruby/input/xlibkeys.hpp:31: error: ‘keyboard’ has not been declared
lib/ruby/input/xlibkeys.hpp:34: error: ‘keyboard’ has not been declared
lib/ruby/input/xlibkeys.hpp:35: error: ‘keyboard’ has not been declared
lib/ruby/input/xlibkeys.hpp:37: error: ‘keyboard’ has not been declared
lib/ruby/input/xlibkeys.hpp:39: error: ‘keyboard’ has not been declared
lib/ruby/input/xlibkeys.hpp:40: error: ‘keyboard’ has not been declared
lib/ruby/input/xlibkeys.hpp:41: error: ‘keyboard’ has not been declared
lib/ruby/input/xlibkeys.hpp:42: error: ‘keyboard’ has not been declared
lib/ruby/input/xlibkeys.hpp:43: error: ‘keyboard’ has not been declared
lib/ruby/input/xlibkeys.hpp:44: error: ‘keyboard’ has not been declared
lib/ruby/input/xlibkeys.hpp:45: error: ‘keyboard’ has not been declared
lib/ruby/input/xlibkeys.hpp:46: error: ‘keyboard’ has not been declared
lib/ruby/input/xlibkeys.hpp:47: error: ‘keyboard’ has not been declared
lib/ruby/input/xlibkeys.hpp:48: error: ‘keyboard’ has not been declared
lib/ruby/input/xlibkeys.hpp:50: error: ‘keyboard’ has not been declared
lib/ruby/input/xlibkeys.hpp:51: error: ‘keyboard’ has not been declared
lib/ruby/input/xlibkeys.hpp:52: error: ‘keyboard’ has not been declared
lib/ruby/input/xlibkeys.hpp:54: error: ‘keyboard’ has not been declared
lib/ruby/input/xlibkeys.hpp:55: error: ‘keyboard’ has not been declared
lib/ruby/input/xlibkeys.hpp:56: error: ‘keyboard’ has not been declared
lib/ruby/input/xlibkeys.hpp:57: error: ‘keyboard’ has not been declared
lib/ruby/input/xlibkeys.hpp:58: error: ‘keyboard’ has not been declared
lib/ruby/input/xlibkeys.hpp:59: error: ‘keyboard’ has not been declared
lib/ruby/input/xlibkeys.hpp:61: error: ‘keyboard’ has not been declared
lib/ruby/input/xlibkeys.hpp:62: error: ‘keyboard’ has not been declared
lib/ruby/input/xlibkeys.hpp:63: error: ‘keyboard’ has not been declared
lib/ruby/input/xlibkeys.hpp:64: error: ‘keyboard’ has not been declared
lib/ruby/input/xlibkeys.hpp:65: error: ‘keyboard’ has not been declared
lib/ruby/input/xlibkeys.hpp:66: error: ‘keyboard’ has not been declared
lib/ruby/input/xlibkeys.hpp:67: error: ‘keyboard’ has not been declared
lib/ruby/input/xlibkeys.hpp:68: error: ‘keyboard’ has not been declared
lib/ruby/input/xlibkeys.hpp:69: error: ‘keyboard’ has not been declared
lib/ruby/input/xlibkeys.hpp:70: error: ‘keyboard’ has not been declared
lib/ruby/input/xlibkeys.hpp:71: error: ‘keyboard’ has not been declared
lib/ruby/input/xlibkeys.hpp:72: error: ‘keyboard’ has not been declared
lib/ruby/input/xlibkeys.hpp:73: error: ‘keyboard’ has not been declared
lib/ruby/input/xlibkeys.hpp:74: error: ‘keyboard’ has not been declared
lib/ruby/input/xlibkeys.hpp:75: error: ‘keyboard’ has not been declared
lib/ruby/input/xlibkeys.hpp:76: error: ‘keyboard’ has not been declared
lib/ruby/input/xlibkeys.hpp:77: error: ‘keyboard’ has not been declared
lib/ruby/input/xlibkeys.hpp:78: error: ‘keyboard’ has not been declared
lib/ruby/input/xlibkeys.hpp:79: error: ‘keyboard’ has not been declared
lib/ruby/input/xlibkeys.hpp:80: error: ‘keyboard’ has not been declared
lib/ruby/input/xlibkeys.hpp:81: error: ‘keyboard’ has not been declared
lib/ruby/input/xlibkeys.hpp:82: error: ‘keyboard’ has not been declared
lib/ruby/input/xlibkeys.hpp:83: error: ‘keyboard’ has not been declared
lib/ruby/input/xlibkeys.hpp:84: error: ‘keyboard’ has not been declared
lib/ruby/input/xlibkeys.hpp:85: error: ‘keyboard’ has not been declared
lib/ruby/input/xlibkeys.hpp:86: error: ‘keyboard’ has not been declared
lib/ruby/input/xlibkeys.hpp:88: error: ‘keyboard’ has not been declared
lib/ruby/input/xlibkeys.hpp:89: error: ‘keyboard’ has not been declared
lib/ruby/input/xlibkeys.hpp:90: error: ‘keyboard’ has not been declared
lib/ruby/input/xlibkeys.hpp:91: error: ‘keyboard’ has not been declared
lib/ruby/input/xlibkeys.hpp:92: error: ‘keyboard’ has not been declared
lib/ruby/input/xlibkeys.hpp:93: error: ‘keyboard’ has not been declared
lib/ruby/input/xlibkeys.hpp:94: error: ‘keyboard’ has not been declared
lib/ruby/input/xlibkeys.hpp:95: error: ‘keyboard’ has not been declared
lib/ruby/input/xlibkeys.hpp:97: error: ‘keyboard’ has not been declared
lib/ruby/input/xlibkeys.hpp:98: error: ‘keyboard’ has not been declared
lib/ruby/input/xlibkeys.hpp:99: error: ‘keyboard’ has not been declared
lib/ruby/input/xlibkeys.hpp:100: error: ‘keyboard’ has not been declared
lib/ruby/input/xlibkeys.hpp:101: error: ‘keyboard’ has not been declared
lib/ruby/input/xlibkeys.hpp:102: error: ‘keyboard’ has not been declared
lib/ruby/input/xlibkeys.hpp:103: error: ‘keyboard’ has not been declared
lib/ruby/input/xlibkeys.hpp:104: error: ‘keyboard’ has not been declared
lib/ruby/input/xlibkeys.hpp:105: error: ‘keyboard’ has not been declared
lib/ruby/input/xlibkeys.hpp:106: error: ‘keyboard’ has not been declared
lib/ruby/input/xlibkeys.hpp:108: error: ‘keyboard’ has not been declared
lib/ruby/input/xlibkeys.hpp:109: error: ‘keyboard’ has not been declared
lib/ruby/input/xlibkeys.hpp:110: error: ‘keyboard’ has not been declared
lib/ruby/input/xlibkeys.hpp:111: error: ‘keyboard’ has not been declared
lib/ruby/input/xlibkeys.hpp:112: error: ‘keyboard’ has not been declared
lib/ruby/input/xlibkeys.hpp:117: error: ‘keyboard’ has not been declared
lib/ruby/input/xlibkeys.hpp:118: error: ‘keyboard’ has not been declared
lib/ruby/input/xlibkeys.hpp:119: error: ‘keyboard’ has not been declared
lib/ruby/input/xlibkeys.hpp:120: error: ‘keyboard’ has not been declared
lib/ruby/input/xlibkeys.hpp:122: error: ‘keyboard’ has not been declared
lib/ruby/input/xlibkeys.hpp:123: error: ‘keyboard’ has not been declared
lib/ruby/input/xlibkeys.hpp:124: error: ‘keyboard’ has not been declared
lib/ruby/input/xlibkeys.hpp:126: error: ‘keyboard’ has not been declared
lib/ruby/input/xlibkeys.hpp:127: error: ‘keyboard’ has not been declared
lib/ruby/input/xlibkeys.hpp:128: error: ‘keyboard’ has not been declared
lib/ruby/input/xlibkeys.hpp:129: error: ‘keyboard’ has not been declared
lib/ruby/input/xlibkeys.hpp:130: error: ‘keyboard’ has not been declared
lib/ruby/input/xlibkeys.hpp:131: error: ‘keyboard’ has not been declared
lib/ruby/input/xlibkeys.hpp:132: error: ‘keyboard’ has not been declared
lib/ruby/input/xlibkeys.hpp:133: error: ‘keyboard’ has not been declared
lib/ruby/input/xlibkeys.hpp:134: error: ‘keyboard’ has not been declared
In file included from lib/ruby/ruby_impl.cpp:68,
from lib/ruby/ruby.cpp:2:
lib/ruby/input/x.cpp: In member function ‘bool ruby::pInputX::poll(int16_t*)’:
lib/ruby/input/x.cpp:31: error: ‘input_limit’ was not declared in this scope
lib/ruby/input/x.cpp:36: error: ‘keyboard’ has not been declared
make: *** [obj/ruby.o] Error 1

There's no mention of missing header files or anything, which leads me to believe that I'm not missing any libraries. Please correct me if I'm wrong however. Any help would be greatly appreciated!
wertigon
Rookie
Posts: 46
Joined: Sat Aug 07, 2004 7:20 pm

Post by wertigon »

You're probably missing the xlib headers. Try "apt-get install libx11-dev"
Haneda
-Burninated-
Posts: 33
Joined: Thu Feb 26, 2009 8:55 pm
Location: Zanzibar Land

Post by Haneda »

As wertigon mentions, you probably need the xlib headers, though he's assuming that you use the Aptitude package manager.

What specific version/distro of Linux are you using? Or are you not using Linux at all, and instead something else like FreeBSD?
byuu

Post by byuu »

It's a problem with the nall namespace. I'm not sure why GCC doesn't give me this error, even though it should.

Go to src\lib\ruby\input, edit xlibkeys.hpp, add this to the top of the file:

//header should already be included, but just in case
#include <nall/input.hpp>
using namespace nall;

I'll get this fixed for v040, thanks.
AFCommando
New Member
Posts: 3
Joined: Fri Feb 27, 2009 9:26 am

Post by AFCommando »

Ah ok thanks for your help. It was driving me nuts that I couldn't figure out why it wouldn't compile.

Maybe just for your reference, the version of GCC I'm using is:
gcc --version
gcc (Gentoo 4.3.2-r3 p1.6, pie-10.1.5) 4.3.2
AFCommando
New Member
Posts: 3
Joined: Fri Feb 27, 2009 9:26 am

Post by AFCommando »

Just wanted to update you. editing xlibkey.hpp and adding those two lines didn't fix it. However adding using namespace nall to x.cpp did though.

--- lib/ruby/input/x.cpp.ori 2009-02-28 01:51:54.000000000 +0900
+++ lib/ruby/input/x.cpp 2009-02-28 01:51:59.000000000 +0900
@@ -7,6 +7,7 @@
namespace ruby {

#include "x.hpp"
+using namespace nall;

class pInputX {
public:
Locked