我本来想用最新的 jrtplib-3.9.1和jthread-1.3.1,可是最新的那两个版本中都是用cmake进行配置的,我搞了好久,查了好多资料也没有解决交叉编译的问题,无奈,只能选用比较老的两个版本,我用的是jrtplib-3.7.1和jthread-1.2.1。想编译jrtplib-3.7.1,必须先编译jthread-1.2.1。
下面是详细编译的步骤
pc上编译:
进入jthread-1.2.1中
第一步:
./configure --prefix=/arm/jrtplib/share_jrtplib_jthread
第二步:
make
第三步:
make install
进入jrtplib
第一步:
./configure --with-jthread-includes=/arm/jrtplib/share_jrtplib_jthread/include/jthread/ LDFLAGS=-L/arm/jrtplib/share_jrtplib_jthread/lib/ --prefix=/arm/jrtplib/share_jrtplib_jthread
第二步:
make
make 的时候出错:
第三步:
make install
--prefix= --prefix :指定编译后的 jrtplib 库安装到什么目录。
--with-jthread-includes :指定之前安装的 jthread 库的头文件安装在什么目录下。如果不需要 jthread 的支持,这个选项可以不用。
LDFLAGS :为编译时需要连接的动态库的路径。如果不需要 jthread 库的支持,这个选项不要。
交叉编译:
第一步:
./configure --prefix=/arm/jrtplib/share_jrtplib_jthread --host=arm-linux CC=/usr/local/arm-2007q3/bin/arm-none-linux-gnueabi-gcc CXX=/usr/local/arm-2007q3/bin/arm-none-linux-gnueabi-g++
--prefix是安装的路径,--host是选择是个pc还是arm,后面CC和CXX是交叉编译工具的路径
第二步:
make
第三步:
make install
编译jrtplib
第一步:
./configure --with-jthread-includes=/arm/jrtplib/share_jrtplib_jthread/include/jthread/ LDFLAGS=-L/arm/jrtplib/share_jrtplib_jthread/lib/ --prefix=/arm/jrtplib/share_jrtplib_jthread --host=arm-linux CC=/usr/local/arm-2007q3/bin/arm-none-linux-gnueabi-gcc CXX=/usr/local/arm-2007q3/bin/arm-none-linux-gnueabi-g++
第二步:
make
第三步:
make install
第一步中的相对路径自己可以做相应的修改。
测试:
编译完成后可以把相应的example里面的例子运行下试试(pc环境下测试的,因为开发班无法开两个终端,我又重新把上面的程序编译了下,生成pc下的可执行程序)
我测试的是第一个例子和第第二个例子
先运行第二个例子
然后运行第二个程序,分别填入:6666 127.0.0.1 8000 1000
这样你就可以看到第二个例子那边受到数据了。