无法运行使用gcc

时间:2016-08-13 00:07:21

标签: linux gcc toolchain crouton-os

我已经设置了一个新的环境 - 它是一个在Chromebook中包含Ubuntu 14.04(可靠)的chroot(Asus flip C100P - 基于ARM)。我已经安装了gcc和g ++。我创建了一个简单的“hello,world”程序(test.c)并通过以下方式编译它:

 gcc -o t.exe test.c

当我去运行./t1.exe时,我得到以下内容:

bash: ./t.exe: Permission denied

请注意,我是以root身份执行的,并且./t.exe的权限设置为全开(chmod 777,通过ls -l验证)。

所以我试着确定什么是错的 - 这是我尝试过的:

%file ./t.exe

./t.exe: ELF 32-bit LSB  executable, ARM, EABI5 version 1 (SYSV), dynamically linked (uses shared libs), for GNU/Linux 2.6.32, BuildID[sha1]=82a6c6227e0f7171a68c71a74c6e6396e37e6675, not stripped

%ldd ./t.exe

not a dynamic executable

%readelf -d ./t.exe |需要grep

0x00000001 (NEEDED)                     Shared library: [libc.so.6]

%dpkg -l libc6

Desired=Unknown/Install/Remove/Purge/Hold
| Status=Not/Inst/Conf-files/Unpacked/halF-conf/Half-inst/trig-aWait/Trig-pend
|/ Err?=(none)/Reinst-required (Status,Err: uppercase=bad)
||/ Name           Version      Architecture Description
+++-==============-============-============-=================================
ii  libc6:armhf    2.19-0ubuntu armhf        Embedded GNU C Library: Shared li

%cat /etc/ld.so.conf.d / *

# Multiarch support
/lib/arm-linux-gnueabihf
/usr/lib/arm-linux-gnueabihf
/usr/lib/arm-linux-gnueabihf/mesa-egl
/usr/lib/arm-linux-gnueabihf/mesa
/usr/lib/arm-linux-gnueabihf/libfakeroot
# libc default configuration
/usr/local/lib

%ls -l libc.so.6

lrwxrwxrwx 1 root root 14 Aug 12 19:37 libc.so.6 -> /lib/libc.so.6

%ls -l /usr/local/lib/libc.so.6

lrwxrwxrwx 1 root root 14 Aug 12 18:21 /usr/local/lib/libc.so.6 -> /lib/libc.so.6

%ls -l /usr/lib/libc.so.6

lrwxrwxrwx 1 root root 14 Aug 12 19:37 /usr/lib/libc.so.6 -> /lib/libc.so.6

%ls -l /lib/libc.so.6

lrwxrwxrwx 1 root root 34 Aug 12 18:11 /lib/libc.so.6 -> /lib/arm-linux-gnueabihf/libc.so.6

%ls -l /lib/arm-linux-gnueabihf/libc.so.6

lrwxrwxrwx 1 root root 12 May 26 07:55 /lib/arm-linux-gnueabihf/libc.so.6 -> libc-2.19.so

%ls -l /lib/arm-linux-gnueabihf/libc-2.19.so

-rwxr-xr-x 1 root root 902876 May 26 07:56 /lib/arm-linux-gnueabihf/libc-2.19.so

%objdump -a /lib/arm-linux-gnueabihf/libc-2.19.so

/lib/arm-linux-gnueabihf/libc-2.19.so:     file format elf32-littlearm

/lib/arm-linux-gnueabihf/libc-2.19.so

%objdump -a ./t.exe

./t.exe:     file format elf32-littlearm

./ t.exe

%uname -a

Linux localhost 3.14.0 #1 SMP PREEMPT Tue Aug 2 21:07:06 PDT 2016 armv7l armv7l armv7l GNU/Linux

我怀疑我有一个带塞的工具链,但我现在真的很难过。
有没有人对这里发生的事情有什么想法,或者如何继续找到问题?

2 个答案:

答案 0 :(得分:1)

我通过 crouton 在 Chromebook 上运行 Linux。我正在学习 go 编程语言并且能够让 go 解释我的“Hello, World!”程序,但是当我让它编译代码时,我无法运行生成的二进制文件。我已经忘记了这个 noexec 问题。我所要做的就是使用 exec 重新挂载 SD 卡并解决权限问题。

对我来说是:

sudo mount -o remount,exec /media/removable/SD\ Card

答案 1 :(得分:-1)

sudo mount -o remount,exec /dev/sdXY

这适用于我的chromebook。我有同样的问题。