【发布时间】:2015-09-03 09:29:43
【问题描述】:
我正在尝试使用包含 neon 指令的 arm-linux-gnueabi-gcc 编译程序并通过 Qemu 执行它。代码是,
#include <arm_neon.h>
void NeonTest(short int * __restrict a, short int * __restrict b, short int * __restrict z)
{
int i;
for (i = 0; i < 200; i++) {
z[i] = a[i] * b[i];
}
}
我在不使用-static 标志的情况下成功地做到了。但是如果不使用-static 标志,Qemu 不会执行/识别可执行文件。所以当我使用-static进行编译链接时,出现如下错误,
junaid@junaid755:~/code/c$ arm-linux-gnueabi-gcc -static -march=armv7-a -mtune=cortex-a9 -ftree-vectorize -mhard-float -mfloat-abi=softfp -mfpu=neon -ffast-math -mvectorize-with-neon-quad -S neon_test.c
junaid@junaid755:~/code/c$ arm-linux-gnueabi-gcc -static -march=armv7-a -mtune=cortex-a9 -ftree-vectorize -mhard-float -mfloat-abi=softfp -mfpu=neon -ffast-math -mvectorize-with-neon-quad -c neon_test.s -o neon_test.o
junaid@junaid755:~/code/c$ arm-linux-gnueabi-gcc -static -march=armv7-a -mtune=cortex-a9 -ftree-vectorize -mhard-float -mfloat-abi=softfp -mfpu=neon -ffast-math -mvectorize-with-neon-quad neon_test.o -o neon_test
/usr/lib/gcc-cross/arm-linux-gnueabi/4.7/../../../../arm-linux-gnueabi/bin/ld: attempted static link of dynamic object `/lib/ld-linux.so.3'
collect2: error: ld returned 1 exit status
我已经尝试过ermine、statifier 和其他用于便携式Linux 应用程序的软件。但问题是它们适用于可执行文件,而在我的情况下,可执行文件的生成会导致错误。
【问题讨论】:
-
也许this 也适合你?