Citat:
Ursprungligen postat av
FaderBerg
Ja det är det kan man väl säga. i Python har du imports av moduler med funktioner du vill använda. Pythontolken läser in dessa vid start och "länkar" on-the-fly så att säga.
Funktionen rtlsdr_open används t.ex. säkert av alla ovanstående program. Koden till den funktionen ligger i filen librtlsdr.c (fast funktionen är deklarerad i rtlsdr.h). När du bara kör rtl_test.c genom kompilern utan -c, så skickar den sin produkt vidare till linkern för att länka ihop all maskinkod och skapa en exekverbar fil. Linkern vet då inte var den ska hitta koden för rtlsdr_open.
Tack, det fungerade. Nu skall jag se om jag kan klara av att återskapa rtil-sdr med multimon-ng i samma program.
(ja, jag inser att lek med IOstream och signalteknisk kod kanske inte är rätt sida ifall man vill fräscha upp sin kodkunskap. Dock är det ett intressant område att koda.)
Citat:
Ursprungligen postat av
FaderBerg
EDIT:
Har du librtlsdr (shared library) installerat på ditt system så kan du säga åt linkern att hitta dess funktioner där, genom att ange '-l rtlsdr' till kompilern.
Jag vill helst inte leka med systemets libs. såsom librtlsdr och det släktet är skrivet är dessa libs mer känsliga än python när det gäller att bli kontaminerade. Därför använder jag inte systemets librtlsdr, då den är sammanbunden med Soapy och en rad andra libs.
Jag backade när jag märkte att Visual Code ville röra i /include/time.h och linux/time.h. Tur nog kan inte Visual Code röra dessa filer, då linux inte är Windows. time.h är en rätt systemskyddad fil i systemet så den kräver sudo.