ADI 技术
直播中

李燕梅

7年用户 189经验值
私信 关注
[问答]

关于交叉编译ad9361-iiostream.c库文件问题

我想要自己来使用libiio库来进行ad9361开发。使用cmake对iio进行编译,cmake文件内容如下:
#this one is importane
SET(CMAKE_SYSTEM_NAME Linux)
#this one not so much
SET(CMAKE_SYSTEM_VERSION 1)
#specify the cross compiler
SET(CMAKE_C_COMPILER /opt/pkg/petalinux-v2015.4-final/tools/linux-i386/ARM-xilinx-linux-gnueabi/bin/arm-xilinx-linux-gnueabi-gcc)
SET(CMAKE_CXX_COMPILER /opt/pkg/petalinux-v2015.4-final/tools/linux-i386/arm-xilinx-linux-gnueabi/bin/arm-xilinx-linux-gnueabi-g++)
# where is the target environment
SET(CMAKE_FIND_ROOT_PATH  /opt/pkg/petalinux-v2015.4-final/tools/linux-i386/arm-xilinx-linux-gnueabi /usr/lib)
# search for programs in the build host directories
SET(CMAKE_FIND_ROOT_PATH_MODE_PROGRAM NEVER)
# for libraries and headers in the target directories
SET(CMAKE_FIND_ROOT_PATH_MODE_LIBRARY ONLY)
SET(CMAKE_FIND_ROOT_PATH_MODE_INCLUDE ONLY)
分别执行:cmake -DCMAKE_TOOLCHAIN_FILE=${TOOLCHAIN_PATH}/usr/share/buildroot/toolchainfile.cmake
                  make all
                  sudo make install DESTDIR=${TOOLCHAIN_PATH}
修改ad9361历程下面的Makefile文件如下:
TARGETS := ad9361-iiostream dummy-iiostream iio-monitor
#CFLAGS = -Wall
CFLAGS = -Wall -I /iiolib/usr/include
LDFLAGS += -liio -L /opt/pkg/petalinux-v2015.4-final/tools/linux-i386/arm-xilinx-linux-gnueabi -L /home/mylibiio/libiio
#UNAME_S := $(shell uname -s)
#ifeq ($(UNAME_S),Darwin)
# CFLAGS += -framework iio
#else
# LDFLAGS += -liio
#endif
#CC=/opt/pkg/petalinux-v2015.4-final/tools/linux-i386/arm-xilinx-linux-gnueabi/bin/arm-xilinx-linux-gnueabi-gcc
CC=arm-xilinx-linux-gnueabi-gcc
#CC=gcc
.PHONY: all clean
all: $(TARGETS)
iio-monitor: iio-monitor.o
$(CC) -o $@ $^ $(CFLAGS) $(LDFLAGS) -lpthread -lncurses -lcdk
ad9361-iiostream : ad9361-iiostream.o
$(CC) -o $@ $^ $(CFLAGS) $(LDFLAGS)
dummy-iiostream : dummy-iiostream.o
$(CC) -o $@ $^ $(CFLAGS) $(LDFLAGS)
clean:
rm -f $(TARGETS) $(TARGETS:%=%.o)
执行make ad9361-iiostream 出现错误信息:
root@ubuntu:/home/mylibiio/libiio/examples# make ad9361-iiostream
arm-xilinx-linux-gnueabi-gcc -o ad9361-iiostream ad9361-iiostream.o -Wall -I /iiolib/usr/include -liio -L /opt/pkg/petalinux-v2015.4-final/tools/linux-i386/arm-xilinx-linux-gnueabi -L /home/mylibiio/libiio
/home/mylibiio/libiio/libiio.so: file not recognized: File format not recognized
collect2: error: ld returned 1 exit status
make: *** [ad9361-iiostream] 错误 1
root@ubuntu:/home/mylibiio/libiio/examples#

请教问什么会这样,是否是我编译的libiio库并没有成功生成ARM下执行的库文件。谢谢。

回帖(3)

顾天天

2018-8-3 06:27:12
您好,关于RF产品(包括AD936x、AD9371、ADF、ADL、ADRF等)的技术问题,请您在ADI英文社区发帖提问。
RF and Microwave | EngineerZone
举报

李燕梅

2018-8-3 06:41:12
引用: bgvywerq 发表于 2018-8-3 06:27
您好,关于RF产品(包括AD936x、AD9371、ADF、ADL、ADRF等)的技术问题,请您在ADI英文社区发帖提问。
RF and Microwave | EngineerZone

你好,我不知道怎么发到英文社区,是否能够帮忙转发到英文社区,谢谢了。
举报

顾天天

2018-8-3 06:52:50
引用: mvuwuersc 发表于 2018-8-3 06:41
你好,我不知道怎么发到英文社区,是否能够帮忙转发到英文社区,谢谢了。

可以用现有账号直接登录英文社区,将问题翻译成英文的即可。
举报

更多回帖

发帖
×
20
完善资料,
赚取积分