Vala and SFML - compile errors

Started by
-1 comments, last by Zesterer 9 years, 9 months ago

Hello,

I'm using the Vala programming language to write a game. I wish to build it using the SFML library as the frontend - the bit that communicates with the window manager (using Linux btw). I'm planning on using OpenGL to render a GL context, then display that using SFML in the window.

Luckily, I have found a set of SFML Vala VAPIs (API bindings) and have put them into the right directory. Unfortunately when compiling, I run into issues and I'm not sure why.

Here is my Vala code (in sfml.vala)


using GLib;
using SFML.Audio;
using SFML.System;
using SFML.Window;
using SFML.Graphics;

namespace GLib
{
	class Default : Object
	{
		public static int main(string[] args)
		{
			stdout.printf("Hello, World!\n");
			
			return 0;
		}
	}
}

As you can see, I am using SFML. But when I try to compile using this command...


valac src/sfml.vala --pkg sfml-graphics --pkg sfml-system --pkg sfml-window --pkg sfml-audio --vapidir=vapi

...I run into the errors posted below.


sfml-window.vapi:15.2-15.20: error: `SFML.System' already contains a definition for `SFTime'
	public class SFTime {
	^^^^^^^^^^^^^^^^^^^
sfml-system.vapi:15.2-15.20: note: previous definition of `SFTime' was here
	public class SFTime {
	^^^^^^^^^^^^^^^^^^^
sfml-window.vapi:47.2-47.19: error: `SFML.System' already contains a definition for `Clock'
	public class Clock {
	^^^^^^^^^^^^^^^^^^
sfml-system.vapi:47.2-47.19: note: previous definition of `Clock' was here
	public class Clock {
	^^^^^^^^^^^^^^^^^^
sfml-window.vapi:102.2-102.19: error: `SFML.System' already contains a definition for `Mutex'
	public class Mutex {
	^^^^^^^^^^^^^^^^^^
sfml-system.vapi:102.2-102.19: note: previous definition of `Mutex' was here
	public class Mutex {
	^^^^^^^^^^^^^^^^^^
sfml-window.vapi:10.2-10.19: error: `SFML.System' already contains a definition for `Time'
	public struct Time {
	^^^^^^^^^^^^^^^^^^
sfml-system.vapi:10.2-10.19: note: previous definition of `Time' was here
	public struct Time {
	^^^^^^^^^^^^^^^^^^
sfml-window.vapi:79.2-79.26: error: `SFML.System' already contains a definition for `InputStream'
	public struct InputStream {
	^^^^^^^^^^^^^^^^^^^^^^^^^
sfml-system.vapi:79.2-79.26: note: previous definition of `InputStream' was here
	public struct InputStream {
	^^^^^^^^^^^^^^^^^^^^^^^^^
sfml-window.vapi:160.2-160.23: error: `SFML.System' already contains a definition for `Vector2i'
	public struct Vector2i {
	^^^^^^^^^^^^^^^^^^^^^^
sfml-system.vapi:160.2-160.23: note: previous definition of `Vector2i' was here
	public struct Vector2i {
	^^^^^^^^^^^^^^^^^^^^^^
sfml-window.vapi:169.2-169.23: error: `SFML.System' already contains a definition for `Vector2u'
	public struct Vector2u {
	^^^^^^^^^^^^^^^^^^^^^^
sfml-system.vapi:169.2-169.23: note: previous definition of `Vector2u' was here
	public struct Vector2u {
	^^^^^^^^^^^^^^^^^^^^^^
sfml-window.vapi:178.2-178.23: error: `SFML.System' already contains a definition for `Vector2f'
	public struct Vector2f {
	^^^^^^^^^^^^^^^^^^^^^^
sfml-system.vapi:178.2-178.23: note: previous definition of `Vector2f' was here
	public struct Vector2f {
	^^^^^^^^^^^^^^^^^^^^^^
sfml-window.vapi:194.2-194.23: error: `SFML.System' already contains a definition for `Vector3f'
	public struct Vector3f {
	^^^^^^^^^^^^^^^^^^^^^^
sfml-system.vapi:194.2-194.23: note: previous definition of `Vector3f' was here
	public struct Vector3f {
	^^^^^^^^^^^^^^^^^^^^^^
sfml-window.vapi:66.2-66.32: error: `SFML.System' already contains a definition for `ReadDeleg'
	public delegate int64 ReadDeleg (void* data, int64 size, void* userData);
	^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
sfml-system.vapi:66.2-66.32: note: previous definition of `ReadDeleg' was here
	public delegate int64 ReadDeleg (void* data, int64 size, void* userData);
	^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
sfml-window.vapi:69.2-69.32: error: `SFML.System' already contains a definition for `SeekDeleg'
	public delegate int64 SeekDeleg (int64 position, void* userData);
	^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
sfml-system.vapi:69.2-69.32: note: previous definition of `SeekDeleg' was here
	public delegate int64 SeekDeleg (int64 position, void* userData);
	^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
sfml-window.vapi:72.2-72.32: error: `SFML.System' already contains a definition for `TellDeleg'
	public delegate int64 TellDeleg (void* userData);
	^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
sfml-system.vapi:72.2-72.32: note: previous definition of `TellDeleg' was here
	public delegate int64 TellDeleg (void* userData);
	^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
sfml-window.vapi:75.2-75.35: error: `SFML.System' already contains a definition for `GetSizeDeleg'
	public delegate int64 GetSizeDeleg (void* userData);
	^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
sfml-system.vapi:75.2-75.35: note: previous definition of `GetSizeDeleg' was here
	public delegate int64 GetSizeDeleg (void* userData);
	^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
sfml-window.vapi:36.2-36.23: error: `SFML.System' already contains a definition for `_time_zero'
	public Time _time_zero;
	^^^^^^^^^^^^^^^^^^^^^^
sfml-system.vapi:36.2-36.23: note: previous definition of `_time_zero' was here
	public Time _time_zero;
	^^^^^^^^^^^^^^^^^^^^^^
sfml-window.vapi:149.2-149.18: error: `SFML.System' already contains a definition for `sleep'
	public void sleep (Time duration);
	^^^^^^^^^^^^^^^^^
sfml-system.vapi:149.2-149.18: note: previous definition of `sleep' was here
	public void sleep (Time duration);
	^^^^^^^^^^^^^^^^^
Compilation failed: 15 error(s), 0 warning(s)

If you are wondering, the VAPI files are here in this repository: https://bitbucket.org/hohoo/vala-sfml/src/24927cd9f649?at=default

Does anyone know why this is happening or how I can fix it?

Thanks,

Zesterer

This topic is closed to new replies.

Advertisement