我尝试从源代码中交叉编译bluez-utils-3.36
。
主机(构建代码的机器)
Processor: Intel(R) Xeon(R) CPU E5-2420 0 @ 1.90GHz
OS Version: Linux 2.6.32-44 generic
目标机器:(应运行编译文件的目标)
Processor: ARM926EJ-S rev 5 (v5l)
OS Version: Linux 2.6.35.3-571
目标似乎有一个ARM处理器,所以我导航到bluez-utils-3.36
并执行以下命令:
./configure \
--host=arm-linux \
BLUEZ_CFLAGS=-I/home/shortened_the_path/bluetooth/bluez-libs-3.36/include \
BLUEZ_LIBS="-L/home/shortened_the_path/bluetooth/bluez-libs-3.36/src/.libs -lbluetooth"
此操作成功。在此之后我执行了make
,并收到此错误:
/usr/lib/libgmodule-2.0.so: could not read symbols: File in wrong format
有谁知道我怎么可能解决这个问题?
答案 0 :(得分:1)
您正在为arm编译,但您尝试链接的libgmodule库是为您的PC架构而构建的。所以你必须交叉编译glib,这是bluez的依赖。
查看此链接,详细说明如何交叉编译bluez
http://wiki.beyondlogic.org/index.php?title=Cross_Compiling_BlueZ_Bluetooth_tools_for_ARM