fdbus学习和使用

1: fdbus地址

https://github.com/jeremyczhen/fdbus

2:build fdbus(ubuntu环境)

cd ~/workspace
git clone https://github.com/jeremyczhen/fdbus.git #get fdbus source code
cd fdbus;mkdir -p build/install;cd build #create directory for out-of-source build
cmake -DCMAKE_INSTALL_PREFIX=install ../cmake
make install

3:Build FDBus example (depends on protobuf) for Ubuntu

  • 先编译protobuf
cd ~/workspace
git clone https://github.com/protocolbuffers/protobuf.git #get protobuf source code
cd protobuf;git submodule update --init --recursive
mkdir -p build/install;cd build #create directory for out-of-source build
cmake -DCMAKE_INSTALL_PREFIX=install -DBUILD_SHARED_LIBS=1 ../cmake
make -j4 install #build and install to build/install directory

这个依赖于git信息,我这边git clone一直失败,我的资料里有一个带有.git信息的protobuf软件包,可供下载使用

如果网络不好,无法执行

git submodule update --init --recursive

则执行:

cmake -Dprotobuf_BUILD_TESTS=OFF -DCMAKE_INSTALL_PREFIX=install -DBUILD_SHARED_LIBS=1 ../cmake

 

  • 再编译example

fdbus的readme如下:

cd ~/workspace/fdbus;mkdir -p build-example/install;cd build-example #create directory for out-of-source build
cmake -DSYSTEM_ROOT=~/workspace/protobuf/build/install;~/workspace/fdbus/build/install -DCMAKE_INSTALL_PREFIX=install ../cmake
PATH=~/workspace/protobuf/build/install/bin:$PATH make install #set PATH to the directory where protoc can be found

但是第二句有点问题,我这边如下:

cmake -DSYSTEM_ROOT="/home/ubuntu16/Desktop/work/FDbus/protobuf/build/install;/home/ubuntu16/Desktop/work/FDbus/fdbus/build/install" -DCMAKE_INSTALL_PREFIX=install  ../cmake/pb-example/
PATH=/home/ubuntu16/Desktop/work/FDbus/protobuf/build/install/bin:$PATH make install

../cmake/pb-example/
为example的cmake路径,可以查看cmake确认

编译出的测试文件可以直接运行,注意有的测试例子运行时需要传入参数的。另外我这边使用logviewer有的测试用例的log没有输出到logviewer,暂时我先添加printf查看example的运行效果

 

4:交叉编译

我这里编译工具链是设置在系统环境变量里的

输入:echo $CC

echo $CC

arm-oe-linux-gnueabi-gcc -march=armv7-a -mfloat-abi=softfp -mfpu=neon
  • 同样的步骤,将fdbus ,protobuf,example都重新交叉编译

但是我这里交叉编译 protobuf的时候提示 protoc出错,我这里临时操作是

把之前编译的ubuntu版本的protoc 和 protoc-3.12.3.0 cp到本地(不要删除已经编译出来的protoc,改个名字备份),正常编译通过。

但是后面执行到install.cmak的时候,提示无法安装,我又把刚才备份的protoc和protoc-3.12.3.0拷贝回去,再次make -j4 install 就可以了。

  • 最后在编译example的指令如下:

注意:build-arm 和 build

cmake -DSYSTEM_ROOT="/home/ubuntu16/Desktop/work/FDbus/protobuf/build-arm/install;/home/ubuntu16/Desktop/work/FDbus/fdbus/build-arm/install" -DCMAKE_INSTALL_PREFIX=install  ../cmake/pb-example/

 PATH=/home/ubuntu16/Desktop/work/FDbus/protobuf/build/install/bin:$PATH make install
  • 将编译出来的文件放到开发板上运行

导入系统的依赖库路径

export LD_LIBRARY_PATH=`pwd`:$LD_LIBRARY_PATH

你可能感兴趣的:(车载嵌入式,linux)