我正在使用具有Vortex86-SG
CPU的嵌入式PC, Ubuntu 10.04 w / w内核2.6.34.10-vortex86-sg
。不幸的是,我们无法编译新内核,因为我们没有任何源代码,甚至没有驱动程序或补丁。
我必须使用 OpenFrameworks 运行一个用C++编写的小项目。框架会使用of_v0071_linux_release/scripts/linux/ubuntu/install_*.sh
编译每个脚本。
我注意到,为了针对Vortex86 / Ubuntu 10.04进行编译,必须在每个config.make
文件中添加以下选项:
USER_CFLAGS = -march=i486
USER_LDFLAGS = -lGLEW
实际上,它可以编译而不会出错,但是生成的二进制文件根本不会启动:
root@jb:~/openframeworks/of_v0071_linux_release/apps/myApps/emptyExample/bin# ./emptyExample
Illegal instruction
root@jb:~/openframeworks/of_v0071_linux_release/apps/myApps/emptyExample/bin# echo $?
132
跟踪最后几行:
munmap(0xb77c3000, 4096) = 0
rt_sigprocmask(SIG_BLOCK, [PIPE], NULL, 8) = 0
--- SIGILL (Illegal instruction) @ 0 (0) ---
+++ killed by SIGILL +++
Illegal instruction
root@jb:~/openframeworks/of_v0071_linux_release/apps/myApps/emptyExample/bin#
有解决这个问题的主意吗?
最佳答案
我知道我在这方面有点迟了,但是最近我在尝试为vortex86dx编译内核时遇到了自己的问题。我终于也能够构建内核。由于我不是Linux专家,因此使用这些步骤需要您自担风险,并且某些设置可能需要更改为自己的惯用选项/硬件:
#apt-get install ncurses-dev kernel-package
#patch -p1 < patchfilename
#make menuconfig
配置内核#make-kpkg --initrd kernel_image kernel_source kernel_headers modules_image
关于c++ - 在Vortex86上编译: “Illegal instruction”,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/17252991/