linux c常见编译错误提示,uclinux编译常见错误

Q:

arm-elf-gcc -Wall -Wstrict-prototypes -Wno-trigraphs -fno-strict-aliasing -mlittle-endian -mtune=arm710 -march=armv3 -msoft-float -fno-builtin -nostdinc -D_LIBC -I../../../../include -I. -fstrict-aliasing -Os -O2 -g -fomit-frame-pointer -fno-common -fno-builtin -Wall -DEMBED -isystem /usr/local/lib/gcc-lib/arm-elf/2.95.3/include -DNDEBUG -c syscall.c -o syscall.o

cc1: warning: -g with -fomit-frame-pointer may not give sensible debugging

syscall.c: In function `syscall':

syscall.c:40: `__NR_syscall' undeclared (first use in this function)

syscall.c:40: (Each undeclared identifier is reported only once

syscall.c:40: for each function it appears in.)

make[6]: *** [syscall.o] Error 1

make[6]: Leaving directory `/root/Desktop/uclinuxkernel/uClibc/libc/sysdeps/linux/arm'

make[5]: *** [arm] Error 2

make[5]: Leaving directory `/root/Desktop/uclinuxkernel/uClibc/libc/sysdeps/linux'

make[4]: *** [_dir_linux] Error 2

make[4]: Leaving directory `/root/Desktop/uclinuxkernel/uClibc/libc/sysdeps'

make[3]: *** [_dir_sysdeps] Error 2

make[3]: Leaving directory `/root/Desktop/uclinuxkernel/uClibc/libc'

make[2]: *** [_dir_libc] Error 2

make[2]: Leaving directory `/root/Desktop/uclinuxkernel/uClibc'

make[1]: *** [all] Error 2

make[1]: Leaving directory `/opt/uClinux-dist/lib'

make: *** [lib_only] Error 2

Answer:

/opt/uClinux-dist/uClibc/libc/sysdeps/linux/arm/syscal.c

add include file:

#include

Q: config/autoconf.h: No such file or directory

A: #include =====>

#include

ABOUT

./uClibc/include/paths.h

./uClibc/libc/sysdeps/linux/common/syscalls.c

------------------------------------------------

Q:

romfs-inst.sh libpam/libpam.so /lib/libpam.so.0

cp: cannot create regular file `/root/uClinux-dist/romfs/lib/libpam.so.0': No such file or directory

make[2]: *** [romfs] Error 1

Answer:

mkdir -p romfs/lib/

------------------------------------------------

Q:

ioperm.c:104: `BUS_ISA_PORT_SHIFT' undeclared (first use in this function)

ioperm.c:104: initializer element is not constant

ioperm.c:104: (near initialization for `ioshift_name[2]')

make[6]: *** [ioperm.o] Error 1

make[6]: Leaving directory `/root/uClinux-dist/uClibc/libc/sysdeps/linux/arm'

make[5]: *** [arm] Error 2

Answer:

cd uClibc

make menuconfig ARCH=armnommu CROSS=arm-elf-

cd ..

------------------------------------------------

Q:

arm-elf-ld -p -X -T arch/armnommu/vmlinux.lds arch/armnommu/kernel/head-armv.o arch/armnommu/kernel/init_task.o init/main.o init/version.o init/do_mounts.o

--start-group

arch/armnommu/kernel/kernel.o arch/armnommu/mm/mm.o arch/armnommu/mach-S3C44B0X/S3C44B0X.o kernel/kernel.o mmnommu/mmnommu.o fs/fs.o ipc/ipc.o

drivers/serial/serial.o drivers/char/char.o drivers/block/block.o drivers/misc/misc.o drivers/net/net.o drivers/net/appletalk/appletalk.o drivers/media/media.o

net/network.o

arch/armnommu/lib/lib.a /root/uClinux-dist/linux-2.4.x/lib/lib.a /usr/local/lib/gcc-lib/arm-elf/2.95.3/libgcc.a

--end-group

-o linux

fs/fs.o(.data+0x1378): multiple definition of `romfs_file_operations'

romfs.o(.data+0x80): first defined here

make[1]: *** [linux] Error 1

make[1]: Leaving directory `/root/uClinux-dist/linux-2.4.x'

make: *** [linux] Error 1

Answer:

vi ~/uClinux-dist/linux-2.4.x/fs/romfs/inode.c

/* Mapping from our types to the kernel */

static struct address_space_operations romfs_aops = {

readpage: romfs_readpage

};

static struct file_operations romfs_dir_operations = {

read: generic_read_dir,

readdir: romfs_readdir,

};

static(此处没有) struct file_operations romfs_file_operations = {

read: generic_file_read,

mmap: generic_file_mmap,

#ifdef MAGIC_ROM_PTR

romptr: romfs_romptr,

#endif

------------------------------------------------

Q: I get the following error message:

qc-driver.c:51: linux/version.h: No such file or directory

qc-driver.c:52: parse error

or

.../include/linux/config.h:4: linux/autoconf.h: No such file or directory

or

sed: can't read /usr/src/linux/Makefile: No such file or directory

or

Makefile:26: /usr/src/linux/.config: No such file or directory

A: You must install Linux kernel source code corresponding

to the kernel you will be running with the camera driver.

The source must be configured and depencies must have been

created. Typically you can just install the kernel source

package that comes with your distribution. If you're instead using

virgin kernel in /usr/src/linux-x.y.zz, you must first copy

kernel configuration file to /usr/src/linux-x.y.zz/.config,

then go to the directory and run "make oldconfig" and "make dep".

This should create the missing linux/version.h file.

Some more help for Redhat/Mandrake users:

If you get a lot of errors on mandrake or red hat when

you do a make, it may be because you didn't install a

full development version, meaning your kernel sources

are not there.

This worked for me

urpmi kernel-source

urpmi kernel-headers

urpmi kernel-doc

urpmi is your friend, it will find the CD that it needs

to get this. Some rpms may be installed already, big

deal, do this then do a make, it worked on mandrake 8.2!

------------------------------------------------------------

Q: And finally, I look for /dev/video* (to set the videodev on

gnomemeeting) and I haven't any videodevice.

A:

mknod /dev/video0 c 81 0

chmod a+r /dev/video0

ln -s /dev/video0 /dev/video

------------------------------------------------------------

Q: quickcam.c:2099: too few arguments to function `remap_page_range_R2baf18f2'

Damian Ivereigh posted a patch to be able to compile

the driver for RedHat 9.0 but I don't know how to do

A: Due to qc-usb 0.5.1, this should be now fixed. If you

still encounter this problem, and

if you're using qc-usb, just compile it with command

USER_OPT=-DHAVE_VMA=1 make all

Otherwise (if you're using older qce-ga):

1. Download qce-ga-0.40d.tar.gz package and save

the patch

wget http://~tuukkat/quickcam/qce-gq-rh9.patch

wget http://~tuukkat/quickcam/qce-ga-0.40d.tar.gz

2. Extract the package:

tar xvfz qce-ga-0.40d.tar.gz

3. Enter the source directory

cd qce-ga-0.40d

4. Apply the patch:

patch -s -p1 < ../qce-gq-rh9.patch

5. patch complains that the patch is reversed. Answer yes:

Reversed (or previously applied) patch Assume -R? [n] y

6. Then compile and install the driver normally

make

./quickcam.sh

------------------------------------------------------------

Q: I don't have permissions for /dev/video?

A: Easiest way to add permissions is to do

chmod a+rw /dev/video?

as root. Altenatively, especially on Debian, users belonging

to the "video" group can access video devices. In this case,

you might instead prefer issuing

addgroup video

as root and then login as normal user. Check in which groups

your are in with

id -a

------------------------------------------------------------

Q: My log files keep filling up (but the driver works fine)!

A: use "qcset debug=0" to disable all possible messages.

If it doesn't help, send e-mail to mailing lists showing

the exact error message that fills your logs.

(especially "frame lost" message is uninteresting, it is

known to happen with some programs and will be fixed later.

------------------------------------------------------------

Q: quickcam.o: kernel-module version mismatch

quickcam.o was compiled for kernel version 2.4.18

while this kernel is version 2.4.18-686-smp.

A: Then edit "Makefile" in the kernel source directory and change the line 4

from

EXTRAVERSION =

to

EXTRAVERSION = -686-smp

--or if this doesn't help--

Go to /usr/src/linux-2.4/include/linux/version.h and change the

UTS_RELEASE to match the output of "uname -r" on the command line

(should be 2.4.18-686-smp). Then recompile the module and then the

insmod will work perfectly :) [from Mark]

------------------------------------------------------------

Q: I want to reverse engineer an USB camera. How?

A: Run *ugh* Windoze *cough* drivers with a USB stream

capture program, like

Then send the same commands to the camera from Linux.

------------------------------------------------------------

Q: I added IEEE1394 card and now Quickcam doesn't work?

A: The card driver overwrites /dev/video0..2, use

insmod ./quickcam.o video_nr=3

and then /dev/video3 with Quickcam.

Create /dev/video3 with mknod if necessary.

(from Makarand)

-------------------------------------------------------------

QError:

>make[2]: Entering directory `/opt/uClinux-dist/uClibc'

>Rules.mak:25: Config: No such file or directory

>You didn't read the README, did you... =)

>Choose a configuration file in extras/Config/ and then run

> ln -s ./extra/Configs/Config. ./Config

A:

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值