文章目录
  1. 1. Read-only file system
  2. 2. ubuntu允许以root身份远程登入
  3. 3. gcc无法编译带数学函数的.c文件

Read-only file system

问题描述

嵌入式开发板提示Read-only file system,另一台linux主机无法使用scp传输文件(提示Read-only file system),SecurtFx也无法传输文件。

系统信息:

1
2
3
4
5
6
[root@M28x ~]# uname -a  #电脑以及操作系统的相关信息
Linux M28x 2.6.35.3-571-gcca29a0 #23 PREEMPT Thu Dec 17 17:21:49 CST 2015 armv5tejl GNU/Linux
[root@M28x ~]# cat /proc/version #说明正在运行的内核版本
Linux version 2.6.35.3-571-gcca29a0 (root@hdp-desktop) (gcc version 4.3.2 (Sourcery G++ Lite 2008q3-72) ) #23 PREEMPT Thu Dec 17 17:21:49 CST 2015
[root@M28x ~]# cat /etc/issue #显示的是发行版本信息
Welcome to ZHIYUAN M28x Board

ZGB网关板


**解决办法**
在嵌入式开发板执行:

1
[root@M28x /]# mount  -o  remount  rw  /


2. 64位linux无法执行32为编译
问题描述

1
2
3
4
5
[09:45:10][root@controller code]# gcc -m32 hello.c -o hello
[09:45:10]In file included from /usr/include/features.h:385,
[09:45:10] from /usr/include/stdio.h:28,
[09:45:10] from hello.c:1:
[09:45:10]/usr/include/gnu/stubs.h:7:27: error: gnu/stubs-32.h: No such file or directory

解决办法:

1
# yum -y install glibc-devel

或者:

1
apt-get install  g++-multilib

ubuntu允许以root身份远程登入

1
# vi /etc/ssh/ssh_config

将PermiLocalCommand更改为yes

1
#   PermitLocalCommand yes

gcc无法编译带数学函数的.c文件

报错:undefined reference to `sin’

1
2
3
4
root@ubuntu:~/code# gcc math.c -o math
/tmp/ccje87oh.o: In function `main':
math.c:(.text+0x28): undefined reference to `sin'
collect2: ld returned 1 exit status

解决方法
添加编译参数-lm

1
# gcc math.c -lm -o math

知识点:

-l参数就是用来指定程序要链接的库,-l参数紧接着就是库名,那么库名跟真正的库文件名有什么关系呢?就拿数学库来说,他的库名是m,他的库文件名是libm.so,很容易看出,把库文件名的头lib和尾.so去掉就是库名了。当我们自已要用到一个第三方提供的库名字libtest.so,那么我们只要把libtest.so拷贝到/usr/lib里,编译时加上-ltest参数,我们就能用上libtest.so库了(当然要用libtest.so库里的函数,我们还需要与libtest.so配套的头文件)

移植openssh时候,make zlib-1.2.8时报错:

1
2
3
4
5
6
7
8
9
10
/usr/local/arm/arm-2009q3/bin/arm-none-linux-gnueabi-gcc -O3  -fPIC -D_LARGEFILE64_SOURCE=1 -DHAVE_HIDDEN -DPIC -c -o objs/uncompr.o uncompr.c
/usr/local/arm/arm-2009q3/bin/arm-none-linux-gnueabi-gcc -O3 -fPIC -D_LARGEFILE64_SOURCE=1 -DHAVE_HIDDEN -DPIC -c -o objs/gzclose.o gzclose.c
/usr/local/arm/arm-2009q3/bin/arm-none-linux-gnueabi-gcc -O3 -fPIC -D_LARGEFILE64_SOURCE=1 -DHAVE_HIDDEN -DPIC -c -o objs/gzlib.o gzlib.c
/usr/local/arm/arm-2009q3/bin/arm-none-linux-gnueabi-gcc -O3 -fPIC -D_LARGEFILE64_SOURCE=1 -DHAVE_HIDDEN -DPIC -c -o objs/gzread.o gzread.c
/usr/local/arm/arm-2009q3/bin/arm-none-linux-gnueabi-gcc -O3 -fPIC -D_LARGEFILE64_SOURCE=1 -DHAVE_HIDDEN -DPIC -c -o objs/gzwrite.o gzwrite.c
/usr/local/arm/arm-2009q3/bin/arm-none-linux-gnueabi-gcc -O3 -fPIC -D_LARGEFILE64_SOURCE=1 -DHAVE_HIDDEN -o libz.so.1.2.8 adler32.lo crc32.lo deflate.lo infback.lo inffast.lo inflate.lo inftrees.lo trees.lo zutil.lo compress.lo uncompr.lo gzclose.lo gzlib.lo gzread.lo gzwrite.lo -lc
/usr/local/arm/arm-2009q3/bin/../arm-none-linux-gnueabi/libc/usr/lib/crt1.o: In function `_start':
init.c:(.text+0x34): undefined reference to `main'

collect2: ld returned 1 exit status
make: *** [libz.so.1.2.8] Error 1
文章目录
  1. 1. Read-only file system
  2. 2. ubuntu允许以root身份远程登入
  3. 3. gcc无法编译带数学函数的.c文件