由于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 )