Korkad nybörjare försöker förstå libsndfile

Här diskuterar vi skal, kommandon och klassiska linuxverktyg.
Användarvisningsbild
Johnny Rosenberg
Inlägg: 1256
Blev medlem: 23 jun 2007, 16:18
OS: Ubuntu
Utgåva: 22.10 Kinetic Kudu
Kontakt:

Korkad nybörjare försöker förstå libsndfile

Inlägg av Johnny Rosenberg »

Har för ett tag sedan laddat ner libsndfile, ett bibliotek för läsning och skrivning av ljudfiler av olika format. Syftet är givetvis att jag själv tänkte skriva ett och annat litet miniprogram för att manipulera sådana på ett eller annat sätt.

Jag installerade libsndfile via pakethanteraren, men jag nöjer mig ju inte med att bara ha biblioteket installerat; jag vill ju förstå det också, därför har jag i studiesyfte även laddat ner källkoden. Har laddat ner version 1.0.17, så det var ett tag sedan, men mina frågor är ganska allmäna, så det spelar nog inte så stor roll.

Så jag har kikat runt i källkoden och funnit att jag inte förstår vissa saker:

I vissa filer anges:

Kod: Markera allt

#include "sndfile.h"
Dock finns ingen fil som heter så, däremot:

Kod: Markera allt

sndfile.h.in
sndfile.hh
Vad innebär det där extra tillägget ”.in”? Är det denna fil som åsyftas i #include-raden ovan?

I sndfile.hh finns raden:

Kod: Markera allt

#include <sndfile.h>
Givetvis har jag missuppfattat allt som vanligt, men jag har fått för mig att när man skriver h-filer inom <> så lär h-filen ifråga finnas installerad i systemet redan, men hur kan den göra det innan man installerat libsndfile?

Sedan försöker jag förgäves att hitta var typen sf_count_t är definierad, men jag är nog på gång nu, tror jag. Annars, om någon vet, är det bara att skrika till. Har i alla fall hittat följande rader i sndfile.h.in:

Kod: Markera allt

/* The following typedef is system specific and is defined when libsndfile is.
** compiled. sf_count_t can be one of loff_t (Linux), off_t (*BSD),
** off64_t (Solaris), __int64_t (Win32) etc.
*/

typedef @TYPEOF_SF_COUNT_T@	sf_count_t ;
Så det är väl bara att leta vidare, antar jag… Fast jag undrar ju varför det är så farligt att i kommentarerna ange exakt vad definitionen finns. När jag söker på ”loff_t” som innehåll i fil i mappen med källkoden får jag ingen träff heller, för övrigt. Antar att den står att finna någon annanstans, då… men var?

Har nog fler frågor i ämnet, men kommer inte på mer just nu. Återkommer.
Vänliga hälsningar

Johnny Rosenberg
ジョニー・ローゼンバーグ

IEEE 1541 - binära prefix
ISO 8601 - datum och tid
Användarvisningsbild
mcNisse
Inlägg: 5211
Blev medlem: 06 feb 2007, 20:51
OS: Debian
Utgåva: Vet inte/ingen utgåva passar

Re: Korkad nybörjare försöker förstå libsndfile

Inlägg av mcNisse »

in filen är en mall som används för att generera .h filen när du kör ./configure, eller motsvarande.

att du inte hittar definitonen av sf_count_t beror återigen på att du inte kört configure.

angående h filer så lägger man dem även innom "". De som ligger innom "" är lokala h filer innom modulen.
Användarvisningsbild
Johnny Rosenberg
Inlägg: 1256
Blev medlem: 23 jun 2007, 16:18
OS: Ubuntu
Utgåva: 22.10 Kinetic Kudu
Kontakt:

Re: Korkad nybörjare försöker förstå libsndfile

Inlägg av Johnny Rosenberg »

mcNisse skrev:in filen är en mall som används för att generera .h filen när du kör ./configure, eller motsvarande.
Känns som att jag missat ett helt kapitel där, när det gäller programutveckling, nämligen hela configure-biten… Vad syftar den till? Är det där saker sker som säkerställer kompatibilitet mellan plattformar?
mcNisse skrev:att du inte hittar definitonen av sf_count_t beror återigen på att du inte kört configure.
När jag gör det, kommer då den nygenererade sndfile.h att innehålla den definitionen, alltså?
mcNisse skrev:angående h filer så lägger man dem även innom "". De som ligger innom "" är lokala h filer innom modulen.
Jo, fast i en av filerna stod användes ju <> istället, vilket jag tyckte var lite konstigt, eftersom sndfile.h ju måste vara lokal…

Nåja, jag är säkert ute och cyklar lite igen, får väl se om poletten trillar ner så småningom.
Tack för svaret, nu kommer jag nog en bit till innan nästa fråga… ;D
Vänliga hälsningar

Johnny Rosenberg
ジョニー・ローゼンバーグ

IEEE 1541 - binära prefix
ISO 8601 - datum och tid
Skriv svar

Återgå till "Terminalforum"