Oszcilloszkóp program fordítása

 ( pelz | 2009. január 23., péntek - 23:30 )

Sziasztok!

A sourceforge.net-en találtam egy számomra szimpatikus oszcilloszkóp progit, ami a hangkártya bemenő jelét tudja megjeleníteni.

http://sourceforge.net/project/showfiles.php?group_id=200880

A program rövid tájékoztatója azt ígéri, hogy multi-platformos. Letöltöttem a forráskódot, és elkezdtem nézegetni. Első meglepetés akkor ért, amikor az összes forráskódot végignéztem, de nem találtam a main() függvényt.

1. Hogyan lehet egy ilyen forráskódot lefordítani, ha nem szerepel benne egyébként a main() függvény. Ismereteim szerint ez kötelező tartozéka minden C++ programnak.

Ennek ellenére megkíséreltem UBUNTU Linux alatt lefordítani a programot a make paranccsal. A makefile.gcc fájlt átneveztem makefile-ra, és elindítottam a make parancsot. Természetesen csőd lett belőle, mivel a g++.exe fájl segítségével próbálta volna lefordítani a programot, és természetesen nekem nincs ilyenem UBUNTU Linux alatt.

2. Elképzelhető, hogy ez a program mégsem multi-platformos?

4. Sejti valaki, hogy hogyan lehet egyébként ezt a programot Windows alatt lefordítani? (Le lehet tölteni az EXE programot is, de engem nem az érdekel, hogy az meglegyen, hanem a fordítás módszere.)

5. Tudtok olyan oszcilloszkóp programot ajánlani, ami Linux alatt (és esetleg Windows alatt is) fordítható és futtatható?

Előre is köszönöm a segítő hozzászólásokat!

Hozzászólás megjelenítési lehetőségek

A választott hozzászólás megjelenítési mód a „Beállítás” gombbal rögzíthető.

make -f makefile.linux?

Lehetseges, ha valaki atdefinialja a main-t valami #define segitsegevel. Ezen felul lehet, hogy csak elkerulte a figyelmedet (hint: grep -rl 'int main' /ahol/a/forras/van).
Windows alatt a MinGW es az MSYS lesz a segitsegedre, valamint a program README vagy INSTALL fajlja, hogy meg mik kellenek neki (Platform SDK pl. lehet hogy kell).
--

()=() Ki oda vagyik,
('Y') hol szall a galamb
C . C elszalasztja a
()_() kincset itt alant.

belenéztem abba a makefileba, totál nemjó... :S
a CXX=g++.exe sorból kitörlöd a .exe -t akkor legalább elkezdi lefordítani, de arra nem jöttem rá hogy kéne átírni a többit hogy be tudja linkelni a megfelelő libeket.

Szerk.:
+ ahogy elnézem pl. az audmes.cpp fájlban ilyen van hogy #include < windows.h >
Szerintem ez a kód nem nagyon multiplatformos...

---
"Ne ugass be mert felveszlek MSN-en és letiltalak vazze!"

a main() függvény nem kötelező eleme a c/c++ programoknak. A linkeléskor kell tudnia a linkernek, hogy melyik függvény lesz a program indulási pontja, de előfordulhat az is, hogy futásidőben dől el dinamikusan (pl. a keretrendszer hív meg egy inicializáló vagy eseménykezelő metódust, akár konfigurációból is jöhet, hogy mely osztályon).

Ez a program nem wxWidgets-et használ véletlenül? mindenütt wxXXXX dolgokra van hívatkozás.
Amúgy a program fő fájlja az AudMeS.cpp, ennek a végén található az AudMeSApp, ami egy wxApp leszármazott. Ennek az OnInit() metódusa a belépési pont. A teljes program tényleges indulási pontja meg a wxWidgets keretrendszerben található.

Na belenéztem a makefile-ba is, kézzel van összehányva, azért egy autoconf/automake nem ártana. wxWdigets-2.6.4-et használ, ennek megfelelően kell a libeket alápakolni és úgy átírni a makefile-t, hogy menjen linux-szal is.

Na, átfutottam. A wxWidgets miatt multiplatformosnak kéne lennie, de az RWAudio_win.cpp mintájára meg kéne írni a linuxos audio illesztést is. Ehhez a részéhez nem értek, több napi utánjárással tudnám csak megcsinálni. Az AudMeS.cpp elején ott egy windows.h include, de lehet, hogy ott abból semmit se használ, az RWAudio_win.cpp-vel meg nem kell foglalkozni. Ezeket leszámítva úgy tűnik, hogy nem windows függő, szóval a multiplatformosságot szem előtt tartva fejlesztették, de a portolása más platformra nem egy egyszerű újrafordítás, hanem a célplatformhoz meg kell írni a hangkártya kezelést és a makefile-t.

Úgy tudom hangkártyás scope program van linuxra is, szerintem inkább keress egy másik programot.

Sokat segítettetek!

Nekem újdonság ez a wxWidgets, de most már elkezdtem tanulmányozni. Találtam bőven dokumentációt róla a neten, így most el tudok indulni valahonnan.

Az igazi nagy problémám, hogy ezt azért csinálom, mert megígértem valakinek, hogy segítek egy hangkártya jelfeldolgozó progit írni, és neki Windows-a van nekem pedig Linuxom. Ezért is lesz jó ez a progi, mert ez Windows-ra van írva, így remélhetőleg át lehet írni olyanra, ami neki kell. Szóval kicsit körülményes a dolog, de megpróbálom a nehézségek ellenére is. Hátha kisül belőle valami.

Ha nem akarsz tul nagyokat szopni, mindenkepp egy Windows installal indits.
--

()=() Ki oda vagyik,
('Y') hol szall a galamb
C . C elszalasztja a
()_() kincset itt alant.

Szó se lehet róla! Nincs jogtiszta Windows a tulajdonomban.

xoscope nem jó?

Megnézem ezeket is. Köszönöm!