我试图弄清楚如何从 live555 媒体服务器源的 testProgs 目录中编译testOnDemandRTSPServer.cpp 。我正在使用 Ubuntu 11.04 并安装了liblivemedia-dev库。
我已将标头包含(在testOnDemandRTSPServer.cpp内)修改为:
#include <liveMedia/liveMedia.hh>
#include <BasicUsageEnvironment/BasicUsageEnvironment.hh>
并使用此命令进行编译:
g++ -lliveMedia -lgroupsock -lBasicUsageEnvironment -lUsageEnvironment testOnDemandRTSPServer.cpp -o RTSPServer
然后导致错误:
In file included from /usr/include/liveMedia/MediaSink.hh:25:0,
from /usr/include/liveMedia/RTPSink.hh:25,
from /usr/include/liveMedia/MultiFramedRTPSink.hh:26,
from /usr/include/liveMedia/AudioRTPSink.hh:25,
from /usr/include/liveMedia/MPEG1or2AudioRTPSink.hh:25,
from /usr/include/liveMedia/liveMedia.hh:27,
from testOnDemandRTSPServer.cpp:21:
/usr/include/liveMedia/FramedSource.hh:25:23: fatal error: NetCommon.h: No such file or directory
compilation terminated.
在这一点上,我想到了甜蜜的交易,这只是头文件之间的重定向问题。然后我修改/usr/include/liveMedia/FramedSource.hh以使用#include <groupsock/NetCommon.h>
而不是#include "NetCommon.h"
- 因为 NetCommon.h 位于 /usr/include/groupsock/
这很有效,直到我发现一百万个其他重定向问题,例如:
/usr/include/liveMedia/Media.hh:29:22: fatal error: Boolean.hh: No such file or directory
/usr/include/liveMedia/Media.hh:33:31: fatal error: UsageEnvironment.hh: No such file or directory
- ETC...
那么,我是否首先正确链接到 live555 库,还是必须根据需要不断更改标头位置?
更新
所以我继续使用上述方法更改标题位置,但现在我得到一百万个未定义的引用错误......如图所示(对不起,这里发布太多)
现在我摸不着头脑,因为原始 testOnDemandRTSPServer.cpp 编译没有问题(使用 configure/make 方法);我唯一改变的是在哪里寻找头文件。