由于bctoolbox库采用C++11编写,gcc版本应大于gcc4.7 , mediastream2库在gcc-4.9.3交叉编译环境下编译成功。
- bcunit库的交叉编译
修改CMakelist.txt文件,在文件正文起始部分加上
/*****************************************复制起始*****************************************/
SET(CMAKE_SYSTEM_NAME Linux) #交叉编译
#设置c编译器
SET(CMAKE_C_COMPILER "arm-linux-gcc")
#设置c++编译器
SET(CMAKE_CXX_COMPILER "arm-linux-g++")
set(CMAKE_INSTALL_PREFIX "/usr/local") #设置安装目录
/*****************************************复制结束*****************************************/
保存
Mkdir _build
Cd _build
Cmake ../.
Make
Sudo Make install
- mbedtls交叉编译编译
修改CMakelist.txt文件,在文件正文起始部分加上
/*****************************************复制起始*****************************************/
SET(CMAKE_SYSTEM_NAME Linux) #交叉编译
#设置c编译器
SET(CMAKE_C_COMPILER "arm-linux-gcc")
#设置c++编译器
SET(CMAKE_CXX_COMPILER "arm-linux-g++")
set(CMAKE_INSTALL_PREFIX "/usr/local") #设置安装目录
/*****************************************复制结束*****************************************/
保存
Mkdir _build
Cd _build
Cmake ../.
Make
Sudo Make install
出现错误

原因是arm体系下char类型默认为无符号型,会导致while表达式结果恒为真
解决方法修改源码/home/ok6410/Desktop/ok6410/share/mbedtls-mbedtls-2.23.0/programs/ssl/ssl_context_info.c
/***************************************************修改起始************************/
在382行左右将
{
int valid_balance = 0; /* balance between valid and invalid characters */
size_t len = 0;
char pad = 0;
char c = 0; //要修改的语句
while( EOF != c )
改为
{
int valid_balance = 0; /* balance bet

本文档详细介绍了如何在GCC 4.9.3交叉编译环境中,成功编译mediastream2、bcunit、mbedtls、bctoolbox等库。涉及修改CMakeLists.txt文件,设置交叉编译器,解决char类型问题,以及编译过程中遇到的问题和解决方案。编译完成后,库文件将被安装到/usr/local目录下。
最低0.47元/天 解锁文章
498

被折叠的 条评论
为什么被折叠?



