LinuxSir.cn,穿越时空的Linuxsir!

 找回密码
 注册
搜索
热搜: shell linux mysql
查看: 2249|回复: 6

3.3.2编译器编译pppsetup

[复制链接]
发表于 2007-1-27 16:46:22 | 显示全部楼层 |阅读模式
我用X86的编译器可以编译pppsetup程序,但将Makefile改成3.3.2的arm-linux-gcc后就出现大量错误,现在急着要将其移植到开发板上,有没有哪位可疑帮我看看?
错误如下:
[root@localhost pppsetupm21]# make
/usr/local/arm/3.3.2/bin/arm-linux-gcc                 -o ppp ppp.c
ppp.c:65:14: missing terminating " character
ppp.c:67:3: invalid preprocessing directive #This
ppp.c:69:3: invalid preprocessing directive #This
ppp.c:69:53: missing terminating ' character
ppp.c:70:3: invalid preprocessing directive #connection
ppp.c:72:3: invalid preprocessing directive #Put
ppp.c:74:3: invalid preprocessing directive #The
ppp.c:74:45: missing terminating ' character
ppp.c:75:3: invalid preprocessing directive #ends
ppp.c:77:3: invalid preprocessing directive #The
ppp.c:78:3: invalid preprocessing directive #be
ppp.c: In function `write_setup':
ppp.c:80: error: parse error before "ATH"
ppp.c:83:3: invalid preprocessing directive #This
ppp.c:84:3: invalid preprocessing directive #make
ppp.c:85:3: invalid preprocessing directive #$4
ppp.c:87:3: invalid preprocessing directive #The
ppp.c:88:3: invalid preprocessing directive #reports
ppp.c:90:3: invalid preprocessing directive #You
ppp.c:91:3: invalid preprocessing directive #modem
ppp.c:92:3: invalid preprocessing directive #Examples
ppp.c:94: error: stray '\' in program
ppp.c:94:25: missing terminating " character
ppp.c:95: error: stray '\' in program
ppp.c:95:25: missing terminating " character
ppp.c:97: error: stray '\' in program
ppp.c:97:5: missing terminating " character
ppp.c:98: error: stray '\' in program
ppp.c:98:11: missing terminating " character
ppp.c:101: error: stray '\' in program
ppp.c:101:7: missing terminating " character
ppp.c:104:2: invalid preprocessing directive #End
ppp.c:105:1: missing terminating " character
make: *** [ppp] Error 1

以下是我的Makefile:
# Makefile for ppp.c
#CC =/usr/local/arm/2.95.3/bin/arm-linux-gcc   #make for 2410
CC =/usr/local/arm/3.3.2/bin/arm-linux-gcc  #make for Mx21
#CC =gcc

CFLAGS = -Wall -ansi -O2 -m  -fomit-frame-pointer -fno-builtin -static  #Mx21
#CFLAGS = -Wno-all -ansi  -m  -static

#$(CC) $(CFLAGS) -o ppp ppp.c
all: ppp

ppp:
        $(CC) -o ppp ppp.c
install:
        cp ppp /usr/bin ; chmod 755 /usr/bin/ppp
       
clean:
        rm -f ppp
源代码见附件

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?注册

x
 楼主| 发表于 2007-1-28 16:34:12 | 显示全部楼层
怎么没有人帮我顶下啊:(
回复 支持 反对

使用道具 举报

发表于 2007-1-28 19:49:20 | 显示全部楼层
在多行字符串的行尾加 \,
类似这样
[PHP]
char s[]="\
line one\n\
line two\
";
[/PHP]
回复 支持 反对

使用道具 举报

 楼主| 发表于 2007-1-28 22:11:52 | 显示全部楼层
我照着做了
错误到时少了很多
但是还是报错:
ppp.c:67:3: invalid preprocessing directive #This
ppp.c: In function `write_setup':
ppp.c:80: error: parse error before "ATH"   //主要是这个错误无法解决
ppp.c:83:3: invalid preprocessing directive #This
ppp.c:84:3: invalid preprocessing directive #make
ppp.c:85:3: invalid preprocessing directive #$4
ppp.c:87:3: invalid preprocessing directive #The
ppp.c:88:3: invalid preprocessing directive #reports
ppp.c:90:3: invalid preprocessing directive #You
ppp.c:91:3: invalid preprocessing directive #modem
ppp.c:92:3: invalid preprocessing directive #Examples
ppp.c:94: error: stray '\' in program //这类错误我将"特殊符号的转义符\取消后就没有了
ppp.c:94:25: missing terminating " character
ppp.c:95: error: stray '\' in program
ppp.c:97: error: stray '\' in program
ppp.c:98: error: stray '\' in program
ppp.c:101: error: stray '\' in program
ppp.c:104:2: invalid preprocessing directive #End
ppp.c:105:1: missing terminating " character
make: *** [ppp] Error 1
谢谢指点
回复 支持 反对

使用道具 举报

发表于 2007-1-29 12:34:57 | 显示全部楼层
\后面不能再出现空格,也就是说\必须是该行最后一个字符
回复 支持 反对

使用道具 举报

发表于 2007-1-29 16:52:03 | 显示全部楼层
楼主要注意分辨哪些是字符串的内容,哪些是C语句
回复 支持 反对

使用道具 举报

发表于 2007-1-29 23:13:56 | 显示全部楼层
我用gcc version 3.2.3 20030502 (Red Hat Linux 3.2.3-47)这个版本的gcc是没有问题的:
[dvlp@LINUX-AS3 dvlp]$ gcc -v
Reading specs from /usr/lib/gcc-lib/i386-redhat-linux/3.2.3/specs
Configured with: ../configure --prefix=/usr --mandir=/usr/share/man --infodir=/usr/share/info --enable-shared --enable-threads=posix --disable-checking --with-system-zlib --enable-__cxa_atexit --host=i386-redhat-linux
Thread model: posix
gcc version 3.2.3 20030502 (Red Hat Linux 3.2.3-47)
[dvlp@LINUX-AS3 dvlp]$ gcc -o ppp ppp.c
ppp.c:65:38: warning: multi-line string literals are deprecated
[dvlp@LINUX-AS3 dvlp]$ ls
makefile  ppp  ppp.c

报了警告,我将每行末尾加 \ 后 ,就没有这个警告了:
[dvlp@LINUX-AS3 dvlp]$ gcc -o ppp ppp.c
[dvlp@LINUX-AS3 dvlp]$

不过我在用hp-ux 是遇到这样一个问题,就是在win下的文本文件会自动改成dos格式,到hp-ux 上必须用dos2unix转一下,不然的话每行最后会多出一个^M, 编译也同样会出现你以上的问题。在Red Hat Linux 下不会有,不过你也可以试一下。
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

快速回复 返回顶部 返回列表