Jump to page: 1 2
Thread overview
Re: DTagLib - D Wrapper Library for the TagLib ID-tagging library
Jul 18, 2011
Andrej Mitrovic
Jul 19, 2011
Johannes Pfau
Jul 19, 2011
Andrej Mitrovic
Jul 23, 2011
Andrej Mitrovic
Jul 23, 2011
Johannes Pfau
Jul 23, 2011
Andrej Mitrovic
Jul 23, 2011
Johannes Pfau
Jul 23, 2011
Andrej Mitrovic
Jul 24, 2011
Andrej Mitrovic
Jul 24, 2011
Johannes Pfau
Jul 24, 2011
Andrej Mitrovic
Jul 24, 2011
Andrej Mitrovic
Jul 24, 2011
Johannes Pfau
Jul 18, 2011
Andrej Mitrovic
Jul 18, 2011
Andrej Mitrovic
July 18, 2011
I manage to forget the important parts:

D2-only, WinXP is the only OS tested. Note that there is nothing windows-specific in the wrapper (except the one-liner batch builders and the DLLs), for a Linux version all that is needed are the shared libraries on that platform - C++ DLL and the C API DLL, and an import lib to implicitly link to the C DLL. It /should/ run on Linux and other OSes.
July 18, 2011
Also, writing tags has not been tested yet so be careful with your mp3's, I don't want someone to accidentally wipe out their ID database by accident. But I'll test writing later, first comes a cup of coffee..
July 18, 2011
Here's a sample for the lazies: https://github.com/AndrejMitrovic/DTagLib/blob/master/samples/dtagreader.d
July 19, 2011
Andrej Mitrovic wrote:
>I manage to forget the important parts:
>
>D2-only, WinXP is the only OS tested. Note that there is nothing windows-specific in the wrapper (except the one-liner batch builders and the DLLs), for a Linux version all that is needed are the shared libraries on that platform - C++ DLL and the C API DLL, and an import lib to implicitly link to the C DLL. It /should/ run on Linux and other OSes.

I can confirm that it works on linux without any changes :-) Oh and dmd on linux doesn't need import libs.

-- 
Johannes Pfau

July 19, 2011
On 7/19/11, Johannes Pfau <spam@example.com> wrote:
> I can confirm that it works on linux without any changes :-)

Talk about cross-platform compatibility in D without even thinking about it! Well, TagLib authors deserve all the credit. :)

> Oh and dmd on linux doesn't need import libs.

Wait, you're telling me someone actually gave a thought or two when designing Linux shared libraries? I'll need to have a chat with Mr. Gates. :p
July 23, 2011
On 7/19/11, Johannes Pfau <spam@example.com> wrote:
> I can confirm that it works on linux without any changes :-)

So what was your command to build a sample application? I can build TagLib and DTagLib, I'm having trouble linking with the shared libraries though..
July 23, 2011
Andrej Mitrovic wrote:
>On 7/19/11, Johannes Pfau <spam@example.com> wrote:
>> I can confirm that it works on linux without any changes :-)
>
>So what was your command to build a sample application? I can build TagLib and DTagLib, I'm having trouble linking with the shared libraries though..

dmd taglib.d c/taglib.d ../samples/dtagreader.d -ofdtagreader -L/usr/lib/libtag_c.so.0

The -L-ltag_c flag doesn't work as for some reason the taglib
package is flawed: -ltag_c searches for libtag_c.so, but ubuntu only
ships these files:
libtag_c.so.0@
libtag_c.so.0.0.0
libtag.so@
libtag.so.1@
libtag.so.1.6.3

So the symlink for libtag_c.so --> libtag_c.so.0 is missing.
-- 
Johannes Pfau

July 23, 2011
Well for one thing my Ubuntu install didn't ship with that lib so I had to make and make install it. make installed the lib in usr/local/lib and not usr/lib. And then there's this:

andrej@andrej-VirtualBox:~/Desktop/DTagLib/samples$ dmd dtagreader.d -I.. ../taglib/taglib.a -L/usr/local/lib/libtag_c.so.0 andrej@andrej-VirtualBox:~/Desktop/DTagLib/samples$ ./dtagreader ./dtagreader: error while loading shared libraries: libtag_c.so.0: cannot open shared object file: No such file or directory

libtag_c.so.0 seems to be a link to some other file, but I can't even figure out where it points to with this horrible nautilus crap.
July 23, 2011
Andrej Mitrovic wrote:
>Well for one thing my Ubuntu install didn't ship with that lib so I had to make and make install it. make installed the lib in usr/local/lib and not usr/lib. And then there's this:

Are you using ubuntu 11.04? I don't know how familar you're with
ubuntu, but to install additional libraries start the 'ubuntu software
center' enter 'taglib' into the search box and click 'display technical
files' then install 'libtagc0'
(names are not exact, I tried to guess the english names ;-))

>andrej@andrej-VirtualBox:~/Desktop/DTagLib/samples$ dmd dtagreader.d -I.. ../taglib/taglib.a -L/usr/local/lib/libtag_c.so.0 andrej@andrej-VirtualBox:~/Desktop/DTagLib/samples$ ./dtagreader ./dtagreader: error while loading shared libraries: libtag_c.so.0: cannot open shared object file: No such file or directory

That's because /usr/local/lib is not in the default library search path.
Two solutions:
* run the application like this:
LD_LIBRARY_PATH=/usr/local/lib ./dtagreader

* add a line containing '/usr/local/lib' to /etc/ld.so.conf and run sudo ldconfig

>libtag_c.so.0 seems to be a link to some other file, but I can't even figure out where it points to with this horrible nautilus crap.

should point to libtag_c.so.0.0.0, that's the linux library version system.

-- 
Johannes Pfau

July 23, 2011
On 7/23/11, Johannes Pfau <spam@example.com> wrote:
> That's because /usr/local/lib is not in the default library search path.
> Two solutions:
> * run the application like this:
> LD_LIBRARY_PATH=/usr/local/lib ./dtagreader

Turns out the last time I did that I also turned off Virtualbox by force, which didn't save the env variable. So that's the root of the problem.

It works now, I'll update the documentation and the script to make it compilable on Linux.

Thanks for all the help!
« First   ‹ Prev
1 2