Combattendo con Ardour

E’ dalla prima caduta del nostro caro governo, giorno infausto di reinstallazione, che combatto con ardour2 (miii il mio multitraccia preferito!).

Ogni volta che tentavo di ricompilarlo incappavo in un errore del linker che, senza troppi complimenti, mi informava che non riusciva a trovare le funzioni:

  • art_alloc
  • art_free

in libart_lgpl. In realtà tali funzioni sono definite come è facile vedere con un

nm --dynamic /usr/lib/libart_lgpl_2.so.2.3.19 | grep 'art_free\|art_alloc'

Cosa strana ed incomprensibile fino a quando cercando in rete non sono incappato in questo post, che tra le altre cose conteneva anche la soluzione al mio problema (grazie Laurent Montel).

Subito mi è stato chiaro che essendo ardour scritto in c++, la mancanza di quell’ extern “C” prima della definizione di art_alloc e compagni, non impediva al compilatore (g++) di trattare la chiamata a quelle funzioni come nativa c++ e di fare quello che fa di solito con i nomi di funzioni in c++.

Finalmente posso di nuovo produrre, ma soprattutto riascoltare, del rumore.

Leave a Reply

Your email address will not be published. Required fields are marked *

This site uses Akismet to reduce spam. Learn how your comment data is processed.