Thread overview | |||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
|
July 18, 2011 Re: DTagLib - D Wrapper Library for the TagLib ID-tagging library | ||||
---|---|---|---|---|
| ||||
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 Re: DTagLib - D Wrapper Library for the TagLib ID-tagging library | ||||
---|---|---|---|---|
| ||||
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 Re: DTagLib - D Wrapper Library for the TagLib ID-tagging library | ||||
---|---|---|---|---|
| ||||
Here's a sample for the lazies: https://github.com/AndrejMitrovic/DTagLib/blob/master/samples/dtagreader.d |
July 19, 2011 Re: DTagLib - D Wrapper Library for the TagLib ID-tagging library | ||||
---|---|---|---|---|
| ||||
Posted in reply to Andrej Mitrovic | 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 Re: DTagLib - D Wrapper Library for the TagLib ID-tagging library | ||||
---|---|---|---|---|
| ||||
Posted in reply to Johannes Pfau | 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 Re: DTagLib - D Wrapper Library for the TagLib ID-tagging library | ||||
---|---|---|---|---|
| ||||
Posted in reply to Johannes Pfau | 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 Re: DTagLib - D Wrapper Library for the TagLib ID-tagging library | ||||
---|---|---|---|---|
| ||||
Posted in reply to Andrej Mitrovic | 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 Re: DTagLib - D Wrapper Library for the TagLib ID-tagging library | ||||
---|---|---|---|---|
| ||||
Posted in reply to Johannes Pfau | 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 Re: DTagLib - D Wrapper Library for the TagLib ID-tagging library | ||||
---|---|---|---|---|
| ||||
Posted in reply to Andrej Mitrovic | 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 Re: DTagLib - D Wrapper Library for the TagLib ID-tagging library | ||||
---|---|---|---|---|
| ||||
Posted in reply to Johannes Pfau | 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!
|
Copyright © 1999-2021 by the D Language Foundation