cross compile the libusb and examples

[Author: Bo Shen <voice.shen@gmail.com>]


Assume you have the cross toolchain installed on your Linux host, here I use ubuntu 12.04 with arm-linux-gnueabihf-gcc installed. (if not, here is the command)

--->8---

For the SoC support hard float point

$ sudo apt-get install gcc-arm-linux-gnueabihf

For the SoC only support soft float point

$ sudo apt-get install gcc-arm-linux-gnueabi

---8<---

Then set the environment

--->8---

$ export ARCH=arm

$ export CROSS_COMPILE=arm-linux-gnueabi-

---8<---


The following steps are real to build the libusb.


1. Get the source code

    $ git clone git://git.libusb.org/libusb.git


2. configure the source

2.1 Edit the autogen.sh file, remove following lines

--->8---

./configure --enable-maintainer-mode --enable-debug-log \
       --enable-examples-build "$@"

---8<---

2.2 Then run the autogen.sh script

$ ./autogen.sh

2.3 Configure the libusb

$ ./configure --host=arm-linux-gnueabihf --prefix=/tmp/_install --enable-examples-build

NOTE: the --enable-examples-build is used to generate the Makefile.

2.4 Make

$ make

$ make install


3. Build the examples

$ cd examples

$ arm-linux-gnueabihf-gcc -I/tmp/_install/include/libusb-1.0 -L/tmp/_install/lib/ -lusb-1.0 -o listdevs listdevs.c

If you meet the error: "can not find the libusb.h", please edit the listdevs.c, change the following lines:

from #include <libusb.h> to #include "libusb.h"

Cross-compiling Parsec benchmark for ARM architecture involves setting up a build environment on your host machine (likely x86 or x64) that can generate code for ARM targets. Here's a general outline of the steps: 1. **Install required tools**: Ensure you have installed a compiler and toolchain that supports ARM, like `gcc-arm-none-eabi` or `clang-arm`. 2. **Set up target environment**: You'll need to configure the toolchain with the correct paths and settings for the ARM target. This may involve creating a separate configuration file or specifying flags when invoking the compiler. ```sh export CC=arm-none-eabi-gcc export CXX=arm-none-eabi-g++ ``` 3. **Download Parsec**: Download the latest version of Parsec, which is a benchmarking suite, and extract it to a suitable location. 4. **Configure Makefile**: If Parsec has a Makefile, modify it to specify the target architecture. Look for lines similar to `CC`, `CFLAGS`, or `LDFLAGS`. Add or update them as needed, using the ARM-specific versions. 5. **Build for ARM**: Run `make clean && make` in the Parsec directory, replacing `make` with the appropriate command for your build system (e.g., `ninja` if you're using Ninja). ```sh make TARGET=arm-linux-gnueabihf ``` 6. **Test on ARM device or emulator**: Copy the generated `.elf` (executable) file to an ARM device or use an emulator to run it. **Related questions:** 1. What specific version of the ARM toolchain do I need? 2. How can I deal with dependencies if they don't have ARM builds available? 3. Are there any libraries or patches I need to include for compatibility with Parsec on ARM?
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值