varan
varan

Reputation: 354

How to compile CFugue library on linux?

I found a great library: CFugue. That's exactly what I need, but I cannot use it on linux. They wrote that it works on ubuntu, but I did not succeed:

g++ said that "vfw.h" doesn't exist. As far as I understand it stands for "video for windows". Is it possible to use CFugue on linux?

Upvotes: 1

Views: 555

Answers (3)

user137
user137

Reputation: 282

I don't know if this will help you because I still haven't been able to get cfugue running on linux either. I emailed the developer and asked him how to do it, he sent these instructions:

  1. Go to the downloaded source code 'MusicNote' directory and create a new directory called 'build'
  2. cd to the newly created 'build' directory
  3. issue the command: cmake -G 'Unix Makefiles' ..
  4. once done, issue the command make

You should see the line 'Linking CXX executable ../Bin/StaticLibTestAppdu'

If you enter the command '../Bin/StaticLibTestAppdu' it should run.

But it still didn't work for me. These are the last few lines of output from make, I think it means there is a problem with ALSA, but I'm no expert.

/home/tom/Workspace/cfuge/CFugue_src_22Jan12/MusicNote/src/MusicNoteLib/MIDIDrivers/AlsaDriver.cpp:167:29: note:   mismatched types ‘const std::fpos<_StateT>’ and ‘std::future_status’
make[2]: *** [CMakeFiles/MusicNoteLib.dir/src/MusicNoteLib/MIDIDrivers/AlsaDriver.cpp.o] Error 1
make[1]: *** [CMakeFiles/MusicNoteLib.dir/all] Error 2
make: *** [all] Error 2

I would not be surprised if ALSA is the issue. I remember trying to get FreeTTS to run in java under linux with no luck because the ALSA driver was bad. I first put ubuntu on my laptop in 2008, sound wouldn't work at all. Newer versions work, I think since they made pulseaudio the default. But it still seems like sound drivers for linux are troublesome.

Upvotes: 0

Sergei Nikulov
Sergei Nikulov

Reputation: 5110

According to comments from sourceforge

+IF(${CMAKE_SYSTEM_NAME} MATCHES "Linux")   # Linux specific code
+     SET(CFugue_Dependencies asound)
+ENDIF(${CMAKE_SYSTEM_NAME} MATCHES "Linux")

it should support linux build.

Try

cmake < path to cfugue checkout >

make

Then depending on result restate your question.

Upvotes: 0

Nikos C.
Nikos C.

Reputation: 51850

(I assume you're trying to build the library using CMake, right?)

That header comes with Wine. Specifically, the development package of Wine. It's usually called "wine-dev" or "wine-devel" on most Linux distros.

Note that CFugue is written in C++11, so you'll need a recent GCC version. 4.7 should work, 4.6 might work, but 4.5 will most probably not work.

Upvotes: 0

Related Questions