{"id":241,"date":"2011-07-27T22:17:46","date_gmt":"2011-07-27T22:17:46","guid":{"rendered":"http:\/\/www.budus.it\/Blog\/?p=241"},"modified":"2017-06-18T07:55:12","modified_gmt":"2017-06-18T07:55:12","slug":"last-fm-compilazione-client-per-linux","status":"publish","type":"post","link":"https:\/\/www.budus.it\/Blog\/last-fm-compilazione-client-per-linux\/","title":{"rendered":"Last.fm: Compilazione client per Linux"},"content":{"rendered":"<p>Ho riscontrato qualche difficolt\u00e0 nel compilare il client per <a title=\"Last.fm\" href=\"http:\/\/www.lastfm.it\/home\" target=\"_blank\" rel=\"noopener\">Last.fm<\/a> su Linux e vorrei suggerire la soluzione che ho adottato per risolvere.<\/p>\n<p><!--more--><\/p>\n<p>Dunque, io mi riferisco al sorgente contenuto in &#8220;last.fm-1.4.2.58240.src.tar.bz2&#8221; che ho decompresso, da utente root, in &#8220;\/usr\/src\/&#8221;.<\/p>\n<p>Dando il classimo &#8220;.\/configure &amp;&amp; make&#8221; ho ottenuto l&#8217;errore:<\/p>\n<pre>make[1]: Entering directory `\/usr\/src\/last.fm-1.4.2.58240\/src\/libFingerprint\/fplib\/pro_qmake'\r\ng++ -c -pipe -w -fPIC -DNBREAKPAD -DLINUX -DNDEBUG -I\/usr\/share\/qt4\/mkspecs\/linux-g++ -I. -I..\/..\/..\/..\/src -I..\/..\/..\/..\/build -I..\/..\/..\/libMoose -I..\/..\/..\/libUnicorn -I..\/include -I..\/src -I..\/..\/libs\/fftw\/src\/api -I..\/..\/..\/..\/res\/libsamplerate -o ..\/..\/..\/..\/build\/fplib\/release\/FingerprintExtractor.o ..\/src\/FingerprintExtractor.cpp \r\n..\/src\/FingerprintExtractor.cpp: In member function \u2018bool fingerprint::FingerprintExtractor::process(const short int*, size_t, bool)\u2019: ..\/src\/FingerprintExtractor.cpp:445: error: \u2018memcpy\u2019 was not declared in this scope\r\nmake[1]: *** [..\/..\/..\/..\/build\/fplib\/release\/FingerprintExtractor.o]\r\nError 1\r\nmake[1]: Leaving directory `\/usr\/src\/last.fm-1.4.2.58240\/src\/libFingerprint\/fplib\/pro_qmake'\r\nmake: *** [sub-src-libFingerprint-fplib-pro_qmake-fplib-pro-make_default-ordered]\r\nError 2<\/pre>\n<p>che ho risolto aggiungendo al file &#8220;src\/libFingerprint\/fplib\/src\/FingerprintExtractor.cpp&#8221; la stringa:<\/p>\n<pre>#include &lt;string.h&gt;<\/pre>\n<p>(chiaramente in testa al file, insieme agli altri include).<\/p>\n<p>Successivamente ho avuto l&#8217;errore:<\/p>\n<pre>g++ -c -pipe -w -fPIC -DNBREAKPAD -DLINUX -DNDEBUG -I\/usr\/share\/qt4\/mkspecs\/linux-g++ -I. -I..\/..\/..\/..\/src -I..\/..\/..\/..\/build -I..\/..\/..\/libMoose -I..\/..\/..\/libUnicorn -I..\/include -I..\/src -I..\/..\/libs\/fftw\/src\/api -I..\/..\/..\/..\/res\/libsamplerate -o ..\/..\/..\/..\/build\/fplib\/release\/OptFFT.o ..\/src\/OptFFT.cpp\r\n..\/src\/OptFFT.cpp: In constructor \u2018fingerprint::OptFFT::OptFFT(size_t)\u2019:\r\n..\/src\/OptFFT.cpp:262: error: \u2018exit\u2019 was not declared in this scope\r\nmake[1]: *** [..\/..\/..\/..\/build\/fplib\/release\/OptFFT.o] Error 1\r\nmake[1]: Leaving directory `\/usr\/src\/last.fm-1.4.2.58240\/src\/libFingerprint\/fplib\/pro_qmake'\r\nmake: *** [sub-src-libFingerprint-fplib-pro_qmake-fplib-pro-make_default-ordered]\r\nError 2<\/pre>\n<p>che ho risolto aggiungendo al file &#8220;src\/libFingerprint\/fplib\/src\/OptFFT.cpp&#8221; la stringa:<\/p>\n<pre>#include &lt;stdlib.h&gt;<\/pre>\n<p>Infine ho dovuto modificare il file &#8220;src\/libFingerprint\/MP3_Source_Qt.cpp&#8221; aggiungendo due librerie con:<\/p>\n<pre>#include &lt;stdlib.h&gt;\r\n#include &lt;limits.h&gt;<\/pre>\n<p>a seguito degli errori:<\/p>\n<pre>g++ -c -pipe -w -D_REENTRANT -fPIC -DNBREAKPAD -DLINUX -DQT_NO_DEBUG -DQT_SQL_LIB -DQT_XML_LIB -DQT_GUI_LIB -DQT_NETWORK_LIB -DQT_CORE_LIB -DQT_SHARED -I..\/..\/..\/..\/share\/qt4\/mkspecs\/linux-g++ -I. -I..\/..\/..\/..\/include\/qt4\/QtCore -I..\/..\/..\/..\/include\/qt4\/QtNetwork -I..\/..\/..\/..\/include\/qt4\/QtGui -I..\/..\/..\/..\/include\/qt4\/QtXml -I..\/..\/..\/..\/include\/qt4\/QtSql -I..\/..\/..\/..\/include\/qt4 -I..\/..\/src -I..\/..<em>\/build -I..\/libMoose -I..\/libUnicorn -Ifplib\/include -I..\/src\/<\/em> -I..\/..\/res\/mad -I..\/..\/build\/LastFmFingerprint\/release -o ..\/..\/build\/LastFmFingerprint\/release\/MP3_Source_Qt.o MP3_Source_Qt.cpp\r\nMP3_Source_Qt.cpp: In function \u2018short int f2s(mad_fixed_t)\u2019:\r\nMP3_Source_Qt.cpp:70: error: \u2018SHRT_MAX\u2019 was not declared in this scope\r\nMP3_Source_Qt.cpp:72: error: \u2018SHRT_MAX\u2019 was not declared in this scope\r\nMP3_Source_Qt.cpp: In member function \u2018virtual void\r\nMP3_Source::skipSilence(double)\u2019:\r\nMP3_Source_Qt.cpp:379: error: \u2018abs\u2019 was not declared in this scope\r\nMP3_Source_Qt.cpp:385: error: \u2018abs\u2019 was not declared in this scope\r\nmake[1]: *** [..\/..\/build\/LastFmFingerprint\/release\/MP3_Source_Qt.o] Error 1\r\nmake[1]: Leaving directory `\/usr\/src\/last.fm-1.4.2.58240\/src\/libFingerprint'\r\nmake: *** [sub-src-libFingerprint-make_default-ordered] Error 2<\/pre>\n<p>Dopodich\u00e9 si \u00e8 compilato regolarmente e mi sembra funzionare bene.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Ho riscontrato qualche difficolt\u00e0 nel compilare il client per Last.fm su Linux e vorrei suggerire la soluzione che ho adottato per risolvere.<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[57,10,6],"tags":[124,9],"class_list":["post-241","post","type-post","status-publish","format-standard","hentry","category-development","category-multimedia","category-software","tag-last-fm","tag-linux"],"_links":{"self":[{"href":"https:\/\/www.budus.it\/Blog\/wp-json\/wp\/v2\/posts\/241","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.budus.it\/Blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.budus.it\/Blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.budus.it\/Blog\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/www.budus.it\/Blog\/wp-json\/wp\/v2\/comments?post=241"}],"version-history":[{"count":4,"href":"https:\/\/www.budus.it\/Blog\/wp-json\/wp\/v2\/posts\/241\/revisions"}],"predecessor-version":[{"id":935,"href":"https:\/\/www.budus.it\/Blog\/wp-json\/wp\/v2\/posts\/241\/revisions\/935"}],"wp:attachment":[{"href":"https:\/\/www.budus.it\/Blog\/wp-json\/wp\/v2\/media?parent=241"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.budus.it\/Blog\/wp-json\/wp\/v2\/categories?post=241"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.budus.it\/Blog\/wp-json\/wp\/v2\/tags?post=241"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}