DirectShow Konsolenanwendung - RTP ?
-
hallo
und zwar möchte ich eine encoder- und sendestrecke aufbauen.
zu diesem zweck habe ich mir jrtplib runtergeladen:
http://research.edm.luc.ac.be/jori/jrtplib/jrtplib.htmlzu anfang soll eine konsolenanwendung erstellt werden, um zu testen ob überhaupt was passiert.
soweit so gut, doch leider lässt sich die jrtp library nicht kompilieren.hier kurz der code:
#include "stdafx.h" #include "rtpsession.h" int example_main(void) { RTPSession sess; return 0; }an dieser stelle kommen 2 linker errors und zwar folgende:
error LNK2019: Nicht aufgelöstes externes Symbol '"public: virtual __thiscall RTPSession::~RTPSession(void)" (??1RTPSession@@UAE@XZ)', verwiesen in Funktion '"int __cdecl example_main(void)" (?example_main@@YAHXZ)' error LNK2019: Nicht aufgelöstes externes Symbol '"public: __thiscall RTPSession::RTPSession(enum RTPTransmitter::TransmissionProtocol)" (??0RTPSession@@QAE@W4TransmissionProtocol@RTPTransmitter@@@Z)', verwiesen in Funktion '"int __cdecl example_main(void)" (?example_main@@YAHXZ)'ich hab den autor angeschrieben, er hat sich bisher noch nicht gemeldet.
andere libraries einbinden, wie die jrtplib.lib bringen keine verbesserung, statt der 2 fehler sinds dann ca. 50.
hat jemand mit jrtplib schon erfahrung ?
wäre nett wenn mir jemand helfen könnte und zumindest in eine richtung dirigieren könnte, wo ich nachhaken kann.viele grüsse
-
libs einbinden
-
mmh, mit so einer antwort habe ich irgendwie gerechnet. versucht habe ich das schon.
die einzigste lib, die ich erstellen kann ist die jrtplib.lib .
nun konkreter, ich habe die neueste version von jrtplib entpackt.
dann liegen im verzeichnis
jrtplib-3.4.0\src\
77 rtp* .cpp und .h dateien drin (habe ich testweise unter eigenschaften\ zusätzliche includeverzeichnisse eingebunden
-> bringt keine verbesserung, gleicher Fehler)
hätte mich auch gewundert, da die benötigten ja im projekt mittels #include eingebunden werden.nach erfolgreicher kompilierung der rtp library wird eine
jrtplib-3.4.0\Debug\jrtplib.lib erstellt.hier gibt es zwei möglichkeiten, diese zu erstellen:
einmal wird noch die jthread library zu kompilierung benötigt oder ohne diese library, dann muss RTP_SUPPORT_THREAD auskommentiert werden.wenn ich diese lib unter Linker\zusätzliche Abhängikeiten angebe, werden 26 linker errors ausgegebn. meistens error lnk2019 und ein paar 2001.
vielleicht hilft die antwort ein wenig weiter, langsam bin ich ratlos. kann sein, das ich auch beim einbinden was falsch mache.
über weitere hilfe bin ich sehr dankbar.
-
mahalanobis schrieb:
wenn ich diese lib unter Linker\zusätzliche Abhängikeiten angebe, werden 26 linker errors ausgegebn. meistens error lnk2019 und ein paar 2001.
Enthalten denn Deine IDE-Lib-Verzeichnisse das Verzeichnis, in dem diese Lib liegt?!

Was, wenn Du die Lib einfach über Projekt->Dem Projekt hinzufügen addest und dann kompilierst?! Das ist jedenfalls keine Spiele-/Grafik-Problem. Wenn Du mit Deinem Compiler/IDE nicht zurecht kommst, RTFM, STFW oder lass' Dich ins MS-, Borland- oder Andere Compiler-Forum verschieben.

-
was, wenn Du die Lib einfach über Projekt->Dem Projekt hinzufügen addest und dann kompilierst?
kommt aufs gleiche raus, gleiche fehler. die lib findet er schon.
nach ein wenig googlen hab ich ne seite gefunden, das es zwischen verschiedenen vc++ version kompatibilitätsprobleme gibt und das teilweise eben die link errors ausgegeben werden. hab die dortige lösung probiert, hat auch nicht funktioniert. hab die seite leider nicht mehr gespeichert.
weil die gleichen probleme hatte ich schon einmal im vorfeld, wo es an den eigenschaften für das projekt lag. auf ähnliches würde ich hier auch tippen (zum test, wenn ich das projekt als statische lib erstelle, gibts keine fehler).
-
Was mir g'rad' noch einfiel:
Microsoft <--vs--> Rest der Welt
nutzen verschiedene Lib-Formate.Andererseits kompilierst Du ja die entsprechende Lib selber...
Mhhh...Oder nicht?!? Dein Geschreibsel ist mir jedenfalls nicht ganz klar:
mahalanobis schrieb:
doch leider lässt sich die jrtp library nicht kompilieren.
mahalanobis schrieb:
die einzigste lib, die ich erstellen kann ist die jrtplib.lib .
[..]
nach erfolgreicher kompilierung der rtp library wird eine
jrtplib-3.4.0\Debug\jrtplib.lib erstellt.hier gibt es zwei möglichkeiten, diese zu erstellen:
einmal wird noch die jthread library zu kompilierung benötigt oder ohne diese library, dann muss RTP_SUPPORT_THREAD auskommentiert werden.mahalanobis schrieb:
(zum test, wenn ich das projekt als statische lib erstelle, gibts keine fehler).

-
so wir haben es jetzt mit drei versionen probiert, der vc++ 6.0, 2003 net und der 2005 enterprise. fehler werden bei jeder version ausgegeben.
was vielleicht noch interessant ist, wenn ich die originale jrtplib kompiliere, kommen keiner errors aber 22 oder 24 warnings. wenn ich diese erstellte lib in das oben angegebene example include, gibt der compiler 22 oder 24 errors raus. ist zwar interessant nur hilft und leider nicht weiter.
ich hatte gehofft das vielleicht jemand schon was mit jrtplib gemacht hat und das zu vielleicht was sagen kann. ansonsten danke an die bisherigen antworten.
-
Eigentlich hab' ich zwar keine Zeit zuviel, aber da ich mich im Moment vor was drücke, kam mir das g'rad' gelegen...

Und eine gute Tat erhöht ja auch das Karma.

Also: Hab' mir die beiden bzip2s mal runtergeladen und kompiliert.
Danach Deine example mit einer Test-main(). Klappt.
Grobes Vorgehen:
Die jthread kompilieren.
jrtplib kompilieren. Dazu in den Projekteigenschaften die Include-Verzeichnisse mit jmutex.h + jthread.h einbinden. Multithreaded-Debug hab' ich eingestellt.Um das example zu kompilieren,
#include "rtpsession.h" int example_main(void); int main(int argc, char* argv[]) { return example_main(); } int example_main(void) { RTPSession sess; return 0; }die jthread.lib, jrtplib.lib, ws_32lib (PlatformSDK) als zusätzliche Abhängigkeiten abgeben.
0 Fehler - 0 Warnungen(Beim Kompilieren der Libs gibt's jedenfalls haufenweise Warnungen bzgl. size_t -> int casts und so)
P.S.: Die mitgelieferten Projekt- und Solution-Dateien hab' ich mit Wordpad auf Version "7.0" getrimmt, um sie mit VS.NET2003 öffnen zu können -- doof, aber geht.

-
fein und danke das du dir zeit genommen hast. wir haben es parallel auch noch hinbekommen. wir arbeiten zum test mit der 05 express version, funktioniert auch gut soweit.
die einbindung der von dir genannten libs ist bei uns genauso. dazu haben wir noch in der stdafx.cpp folgenden code abgelegt:
#pragma comment(lib,"ws2_32.lib") #pragma comment(lib,"Advapi32.lib")dazu noch das lib und include verzeichnis des platformsdk verlinkt.
nun sind die ganzen errors und teilweise dir warnungen auch weg. sind da drauf gekommen, als wir teile des fehlercodes bei ner grossen suchmaschine eingegeben haben.
immer gut zu wissen, das man nicht der erste und einzige ist mit solchen fehlermeldungen.na hoffe mal meine geschreibsel hat dich nicht zu sehr angehalten was produktives zu machen.
mahalanobis, der ganz stolz sein erstes rtp paket verschickt hat