编译libiio出错
warning: libusb-1.0.so.0, needed by ../lib/libiio.so, not found (try using -rpath or -rpath-link)
添加依赖库
这是因为在编译时,libiio.so动态链接了libusb库,ld时找不到相应的库导致错误。
- 在编译主机上新建一个目录如lib,将libiio依赖的库复制到lib中
上面命令可以一键复制
ldd /lib/arm-linux-gnueabihf/libiio.so| awk -F " " ‘{print $3}’|xargs -t -i cp {} .
其中awk表示取出依赖库的路径
xargs -t 表示打印命令 -i表示将xargs的每一项,一行一行的赋给后面的{} - 编译时在LDFLAGS中加入: -Wl,-rpath …/lib
其中-Wl,-rpath …/lib表示依赖的库从…/lib中找
使用-L…/lib是不管用的。
cmake传递编译命令
cmake -DCMAKE_CXX_COMPILER=arm-linux-gnueabi-g++ …
编译程序
arm-linux-gnueabihf-g++ -o do do.cpp -liio -I…/include -Wl,-rpath=…/lib
用qemu-arm运行程序
sudo apt install qemu-user
qemu-arm -L /usr/arm-linux-gnueabihf/ ./do