2. 安装jthread.
在终端中输入:
./configure –prefix=/prj/share –host=arm-montavista-linux CC=/opt/montavista/pro/devkit/arm/v5t_le/bin/arm_v5t_le-gcc CXX=/opt/montavista/pro/devkit/arm/v5t_le/bin/arm_v5t_le-g++
将生成一个Makefile文件。
执行
make
make install
jthread安装完毕。
3. 安装jrtplib
和安装JThread类似,先执行配置文件:
./configure –prefix=/prj/share –host=arm-montavista-linux CC=/opt/montavista/pro/devkit/arm/v5t_le/bin/arm_v5t_le-gcc CXX=/opt/montavista/pro/devkit/arm/v5t_le/bin/arm_v5t_le-g++
注意:
make
安装到/prj/share目录:
make install
完成后,可以看到/prj//share/lib目录下多了jthread和jrtpLib的库文件。把/prj/share/include /jrtplib3和/prj/share/include/jthread下所有的头文件copy至/prj/share/include
4. /jrtplib-3.7.1/examples下的示例程序有可能已经交叉编译出来了,也可能没有,现在可以手动进行编译。
1)copy头文件
在 /prj/share/include目录下有两个文件夹分别是jrtplib和jthread的头文件,将所有的头文件copy至/opt /mv_pro_4.0/montavista/pro/devkit/arm/v5t_le/lib/gcc/armv5tl-montavista- linuxeabi/3.4.3/include。
2)copy库文件
将/prj//share/lib目录下除了pkgconfig外所有的文件copy至/opt/mv_pro_4.0/montavista/pro/devkit/arm/v5t_le/lib/armv5tl-montavista-linuxeabi/lib。
注意以上2步是为了以后交叉编译方便,copy的具体位置决定于你的交叉编译器查找头文件和库文件的位置。当然也可以不用这样做,只不过在交叉编译的时候需要指定头文件和库文件的位置。
3)交叉编译example1.cpp
arm_v5t_le-g++ example1.cpp -o example1_ARM -ljrtp -ljthread -lpthread
可以看到example1_ARM文件,用file example1_ARM命令看到该文件是ARM平台的。
如果没有进行前两步操作,编译命令如下:
arm_v5t_le-g++ example1.cpp -o example1_ARM -I /prj/share/include -L /prj/share/lib -ljrtp -ljthread -lpthread
这里有可能会提示关于pthread的错误,所以最好执行前两步的操作。
4)将/prj/share/lib目录下的libjrtp-3.7.1.so和libjthread-1.2.1.so文件copy到开发板文件系统的/usr/lib下。
5)将第3步生成的example1_ARM复制到开发板的文件系统里。
chmod 777 example1_ARM
./example1_ARM
可以看到程序可以运行啦。
6)现在测试ARM和PC通过RTP协议传输数据。
首先应确保你的开发板和PC能互相ping通。编译PC平台的example1.cpp,编译方法见:http://blog.163.com/munpk@126/blog/static/7307788720093221021356/。
同时在PC和开发板上运行example1,目的端口和目的地址都填对方的本地端口和IP地址,如果你在PC端和ARM端都能看到Got packet,那么恭喜你,jrtplib成功移植。