阅读:2298回复:19
linux下c的问题,请教大家
一个简单的(复杂的???)编译问题
现需要编译mouse.c(/usr/src/xc/p../hw/Xs../input/mouse/mouse.c)为mouse_drv.o(/usr/X11R6/lib/modules/input/mouse_drv.o), 但mouse.c需要使用很多的包含文件,请问该怎样在gcc 中指定(修改site.def太麻烦)? 注:用笨办法把所有源文件拷贝到同一个目录并把所有的<>包含该为\"\"包含,会出错,很多错。 平台 :redhat7.2(xfree86为4.10) [编辑 - 2/5/02 作者: element] |
|
|
沙发#
发布于:2002-02-05 14:48
gcc -I /dir1/dir2
这样不久可以了么? |
|
|
板凳#
发布于:2002-02-05 15:46
thanx,sunsetyang .
but 现在我把所有的include目录都-I了,可以编译了,但错误似乎比代码还长。 主要是:大量的parse error before `*****` 一些previous declaration of `*****` 和不少的warning 可是我编译的是原封不动的4.10源代码呀 另外,请问在哪里能找到这些错误的含义说明。 谢谢。 |
|
|
地板#
发布于:2002-02-05 16:20
Ps:\"parse error before...\"通常有格式错误引起,但是其他模块也会出错,难道所有的源代码都不正确? 或者我的GCC2.92太新?该用2.7.2.3? 还请解惑 |
|
|
地下室#
发布于:2002-02-05 16:59
我现在使用的命令是:
gcc -o -I/usr/src/xc/include -I/usr/src/xc/extras/freetype2/include -I/usr/src/xc/extras/Mesa/include -I/usr/src/xc/extras/ogl-sample/main/gfx/lib/glu/include -I/usr/src/xc/extras/x86emu/include -I/usr/src/xc/lib/font/include -I/usr/src/xc/lib/GL/include -I/usr/src/xc/lib/GLU/include -I/usr/src/xc/programs/lbxproxy/include -I/usr/src/xc/programs/xfs/include -I/usr/src/xc/programs/xrx/plugin/include -I/usr/src/xc/programs/Xserver/include -I/usr/src/xc/programs/Xserver/GL/include -I/usr/src/xc/programs/Xserver/hw/hp/include -I/usr/src/xc/programs/Xserver/PEX5/include -I/usr/src/xc/programs/Xserver/PEX5/ddpex/mi/include -I/usr/src/xc/programs/Xserver/XIE/include -I/usr/src/xc/programs/Xserver/XIE/mixie/include -I/usr/src/xc/programs/Xserver/hw/xfree86 -I/usr/src/xc/programs/Xserver/hw/xfree86/common -I/usr/src/xc/programs/Xserver/hw/xfree86/os-support/ -I/usr/src/xc/include/ mouse.c |
|
|
5楼#
发布于:2002-02-05 17:46
你不能用configure以后自动生成的makefile来做么?
可能你的里面include了不需要的东西于是就有了parse error. 你看看那个目录下面有没有makefile,一般最简单的方法是从makefile里面找出相应的依赖的include文件的。你先检查一下? 直接的编译是最方便的,不过可能会编译其他很多无用的东西。 |
|
|
6楼#
发布于:2002-02-05 17:52
再次感谢斑竹
不过我刚刚转到linux,问题有比较急迫,可否用qq联系一下? 我的是40639533 |
|
|
7楼#
发布于:2002-02-05 18:02
目录下面只有Imakefile,我有试过用imake OR xmkmf OR xmkmf -a等命令来生成makefile,都不能成功
Imakefile中有一行 INCLUDES = -I. -I$(XF86COMSRC) -I$(XF86SRC)/loader -I$(XF86OSSRC) \\ -I$(SERVERSRC)/include -I$(XINCLUDESRC) -I$(EXTINCSRC) 但我不知道应该怎么对应, |
|
|
8楼#
发布于:2002-02-05 19:36
INCLUDES = -I. -I$(XF86COMSRC) -I$(XF86SRC)/loader -I$(XF86OSSRC) \\
-I$(SERVERSRC)/include -I$(XINCLUDESRC) -I$(EXTINCSRC) gcc -I. -I/usr/src/xc/programs/Xserver/hw/xfree86/common -I/usr/src/xc/programs/Xserver/hw/xfree86 -I/usr/src/xc/programs/Xserver/hw/xfree86/os-support -I/usr/src/sc/programs/Xserver/include -I/usr/src/xc/include/X11 -I/usr/src/xc/include/externsions mouse.c SERVERSRC = $(XTOP)/programs/Xserver XF86SRC = $(SERVERSRC)/hw/xfree86 XF86COMSRC=$(XF86SRC)/common XINCLUDESRC = $(INCLUDESRC)/X11 EXTINCSRC = $(XTOP)/include/extensions XF86OSSRC = $(XF86SRC)/os-support xtop就是/usr/src/xc 你这样就可以了吧! |
|
|
9楼#
发布于:2002-02-05 20:45
最终使用的是 gcc -I. -I/usr/src/xc/programs/Xserver/hw/xfree86/common -I/usr/src/xc/programs/Xserver/hw/xfree86/loader
-I/usr/src/xc/programs/Xserver/hw/xfree86/os-support -I/usr/src/xc/programs/Xserver/include -I/usr/src/xc/include/X11 -I/usr/src/xc/include/externsions 但会提示有两个文件找不到,他们在/usr/src/xc/include下,把这个目录也加进去或者把文件考出来后,能够编译,但会有两屏错误,减少包含目录也减少了错误,而把所有文件都考到一起会有10屏,所明的确根包含目录有关, 也许最正宗的方法是按照install-x-org说的,编辑site.def,再imake,再make,可是这条路看这就快走通了,让我再试试看。 附:使用4.20版的xfree86也会有相同问题 |
|
|
10楼#
发布于:2002-02-05 20:56
最终使用的是 gcc -I. -I/usr/src/xc/programs/Xserver/hw/xfree86/common -I/usr/src/xc/programs/Xserver/hw/xfree86/loader 看看你的Imakefile,好像还要一个-DPNP_MOUSE 并且需要编译两个文件mouse.c pnp.c |
|
|
11楼#
发布于:2002-02-05 21:09
那样就跟复杂了,我现在编译的是...../sample/sample.c,
差一个Xfuncs.h文件,靠过来编就有两屏错误, |
|
|
12楼#
发布于:2002-02-05 21:39
那样就跟复杂了,我现在编译的是...../sample/sample.c, 什么意思? 你的mouse还不行? 你直接在/usr/src/xc下imake 然后再到拿个目录去敲make吧! |
|
|
13楼#
发布于:2002-02-05 22:16
行的话,我早就飞回家睡觉去了,几天几夜没合眼了,怎么liunx下面编译这么困难哟......
天要忘我,非吾不能也。:) |
|
|
14楼#
发布于:2002-02-05 22:20
那该死的install-x-org,本来就有29.9K大,偏偏还一会儿让看这个文件一会儿让看那个文件,哦,MY GOD,
急白了我的头..... |
|
|
15楼#
发布于:2002-02-05 22:27
那该死的install-x-org,本来就有29.9K大,偏偏还一会儿让看这个文件一会儿让看那个文件,哦,MY GOD, 不要急啊!慢慢来,好好休息一下,头脑清楚了,做什么都很快的。 :-) |
|
|
16楼#
发布于:2002-02-05 23:09
马上成功了!你等一会!
|
|
|
17楼#
发布于:2002-02-05 23:14
编译pnp.c的命令行:
$ gcc -I. -I/usr/src/xc/include -I/usr/src/xc/programs/Xserve r/hw/xfree86/common -I/usr/src/xc/programs/Xserver/hw/xfree86/loader -I/usr/src/ xc/programs/Xserver/hw/xfree86/os-support -I/usr/src/xc/programs/Xserver/mi -I/u sr/src/xc/programs/Xserver/include -I/usr/src/xc/programs/Xserver/hw/xfree86/ -I /usr/src/xc/include/extensions -I/usr/src/xc//programs/Xserver/hw/xfree86/os-sup port/bus -DXINPUT -DPNP_MOUSE -c pnp.c -o pnp.o 编译mouse.c的命令行: gcc -I. -I/usr/src/xc/include -I/usr/src/xc/programs/Xserve r/hw/xfree86/common -I/usr/src/xc/programs/Xserver/hw/xfree86/loader -I/usr/src/ xc/programs/Xserver/hw/xfree86/os-support -I/usr/src/xc/programs/Xserver/mi -I/u sr/src/xc/programs/Xserver/include -I/usr/src/xc/programs/Xserver/hw/xfree86/ -I /usr/src/xc/include/extensions -DXINPUT -DPNP_MOUSE -c mouse.c -o mouse.o 接下来还要做连接的。你还是要看makefile里面的。 |
|
|
18楼#
发布于:2002-02-05 23:25
thanx a lot lot lot,找了很多论坛。终于在这里解决了,我要歌唱伟大的祖国,歌唱伟大领袖,$%#!@&#^!@#&!*#&!&*#&*!&*3&*!&*#!&#^$^!^$*!@$^!*$!$^*!*$*!$&*
|
|
|
19楼#
发布于:2002-03-11 10:28
Yea
|
|