BBYR Achieve
返回信息流
这是一条镜像帖。来源:北邮人论坛 / embedded-system / #6767同步于 2009/12/3
Embedded_System机器人发帖

[合集] Syntax error: word unexpected (expecting ")") 求助。

ArmStrong
2009/12/3镜像同步0 回复
☆─────────────────────────────────────☆ xiachenghai (渊源) 于 (Fri Nov 20 10:40:37 2009) 提到: 我的程序如下: #include <stdio.h> /*标准输入输出定义*/ #include <string.h> int main(int argc,char *argv[]) { char buff[512]; char command1[20]; char command2[20]; strcpy(command1,argv[1]); strcpy(command2,argv[2]); memcpy(buff,&command1,strlen(command1)); memcpy(buff+strlen(command1),&command2,strlen(command2)); printf("%s\n",command1); printf("%s\n",command2); printf("%s\n",buff); return 0; } 交叉编译成功,ftp传输时显示: 226-WARNING! 18 bare have linefeeds received in ASCIImode File may not have transferred correctly. 在ARM板上运行时出现: Syntax error: word unexpected (expecting ")") 求助,谢谢 ☆─────────────────────────────────────☆ hobby (hobby) 于 (Fri Nov 20 10:42:50 2009) 提到: 呵呵 发帖了 先顶后看哈 【 在 xiachenghai (渊源) 的大作中提到: 】 : 我的程序如下: : #include <stdio.h> /*标准输入输出定义*/ : #include <string.h> : ................... ☆─────────────────────────────────────☆ hobby (hobby) 于 (Fri Nov 20 10:47:44 2009) 提到: 先说一下前面的warning,你ftp传输的是目标文件还是源文件呢?看起来好像是源文件,而且这个错误好像应该编译时候报 226-WARNING! 18 bare have linefeeds received in ASCIImode File may not have transferred correctly. 这里提到了linefeed,这个应该是windows里面换行到linux下面不认了吧,你可以把这个文件传到PC的linux里面看一下,比如用vi打开看看,另存一下试试,我记得vi有个什么选项可以显示换行的 【 在 xiachenghai (渊源) 的大作中提到: 】 : 我的程序如下: : #include <stdio.h> /*标准输入输出定义*/ : #include <string.h> : ................... ☆─────────────────────────────────────☆ xiachenghai (渊源) 于 (Fri Nov 20 10:55:16 2009) 提到: ftp传的是可执行文件 【 在 hobby 的大作中提到: 】 : 先说一下前面的warning,你ftp传输的是目标文件还是源文件呢?看起来好像是源文件,而且这个错误好像应该编译时候报 : 226-WARNING! 18 bare have linefeeds received in ASCIImode File may not have : transferred correctly. : ................... ☆─────────────────────────────────────☆ hobby (hobby) 于 (Fri Nov 20 10:56:29 2009) 提到: 那源代码是在linux下写的,还是windows下写的呢? 此外,别整这么多,helloworld有问题吗? 【 在 xiachenghai (渊源) 的大作中提到: 】 : ftp传的是可执行文件 ☆─────────────────────────────────────☆ xiachenghai (渊源) 于 (Fri Nov 20 11:02:25 2009) 提到: window下写的,没整howword,这个不应有什么错误吧? 【 在 hobby 的大作中提到: 】 : 那源代码是在linux下写的,还是windows下写的呢? : 此外,别整这么多,helloworld有问题吗? ☆─────────────────────────────────────☆ xiachenghai (渊源) 于 (Fri Nov 20 11:06:28 2009) 提到: 交叉编译用的指令:arm-linux-gcc -o file file.c file是文件名 ☆─────────────────────────────────────☆ hobby (hobby) 于 (Fri Nov 20 11:06:38 2009) 提到: 交叉编译环境在linux里面吧,你在linux里面新建一个.c,把内容拷进去或者干脆敲进去 或者windows下弄个helloworld,估计还会遇到一样的问题(反正我在linux PC上试了一下,你的程序没问题,可能交叉编译器比较娇嫩吧) helloworld嘛,拷贝之 #include <stdio.h> int main(void) { printf("hello\n"); return 0; } 【 在 xiachenghai (渊源) 的大作中提到: 】 : window下写的,没整howword,这个不应有什么错误吧? ☆─────────────────────────────────────☆ hobby (hobby) 于 (Fri Nov 20 11:07:17 2009) 提到: 搞helloworld先吧,一步一步确定问题 【 在 xiachenghai (渊源) 的大作中提到: 】 : 交叉编译用的指令:arm-linux-gcc -o file file.c : file是文件名 ☆─────────────────────────────────────☆ xiachenghai (渊源) 于 (Fri Nov 20 11:15:07 2009) 提到: 这个在linux下运行是没有问题的,现在主要是编译成可执行文件时,在XP上用ftp与开发板连接传输出错,不知道是怎么回事。 【 在 hobby 的大作中提到: 】 : 交叉编译环境在linux里面吧,你在linux里面新建一个.c,把内容拷进去或者干脆敲进去 : 或者windows下弄个helloworld,估计还会遇到一样的问题(反正我在linux PC上试了一下,你的程序没问题,可能交叉编译器比较娇嫩吧) : helloworld嘛,拷贝之 : ................... ☆─────────────────────────────────────☆ hobby (hobby) 于 (Fri Nov 20 11:48:42 2009) 提到: 哦 那换个ftp试试? 或者tftp传过去也可以吧 【 在 xiachenghai (渊源) 的大作中提到: 】 : 这个在linux下运行是没有问题的,现在主要是编译成可执行文件时,在XP上用ftp与开发板连接传输出错,不知道是怎么回事。 ☆─────────────────────────────────────☆ hobby (hobby) 于 (Fri Nov 20 11:55:35 2009) 提到: 刚才又试了试,你在开发板上进行ftp下载时,在ftp的命令界面(ftp>) 输入bin切换为binary模式,进行下载 你现在用的应该是ascii模式 【 在 xiachenghai (渊源) 的大作中提到: 】 : 这个在linux下运行是没有问题的,现在主要是编译成可执行文件时,在XP上用ftp与开发板连接传输出错,不知道是怎么回事。 ☆─────────────────────────────────────☆ hobby (hobby) 于 (Fri Nov 20 11:55:53 2009) 提到: 不知道有什么差异,不过warning不是说的ascii不行嘛 【 在 hobby (hobby) 的大作中提到: 】 : 刚才又试了试,你在开发板上进行ftp下载时,在ftp的命令界面(ftp>) : 输入bin切换为binary模式,进行下载 : 你现在用的应该是ascii模式 : ................... ☆─────────────────────────────────────☆ hobby (hobby) 于 (Fri Nov 20 11:56:54 2009) 提到: 我这里实验bin模式 ftp> bin 200 Type set to I. ftp> get hello.c local: hello.c remote: hello.c 227 Entering Passive Mode (59,64,136,141,4,189) 150 Opening BINARY mode data connection for hello.c (4223 Bytes). 226 Transfer complete. 4223 bytes received in 0.000586 secs (7206.48 Kbytes/sec) 实验ascii模式 ftp> ascii 200 Type set to A. ftp> get hello.c local: hello.c remote: hello.c 227 Entering Passive Mode (59,64,136,141,4,209) 150 Opening ASCII mode data connection for hello.c (4223 Bytes). WARNING! 116 bare linefeeds received in ASCII mode File may not have transferred correctly. 226 Transfer complete. 4223 bytes received in 0.000867 secs (4870.82 Kbytes/sec) 【 在 hobby (hobby) 的大作中提到: 】 : 不知道有什么差异,不过warning不是说的ascii不行嘛 ☆─────────────────────────────────────☆ xiachenghai (渊源) 于 (Fri Nov 20 12:12:57 2009) 提到: 我用了一个UltraEdit软件,它里面带了一下ftp,传输成功了,看来在cmd里用ftp方式传输可能有局限性。 【 在 hobby 的大作中提到: 】 : 我这里实验bin模式 : ftp> bin : 200 Type set to I. : ................... ☆─────────────────────────────────────☆ hobby (hobby) 于 (Fri Nov 20 14:44:06 2009) 提到: 我进行的实验结果是,写一个helloworld的程序,在vm里面编译成功,拷出来再用ftp传进vm中进行实验 1、如果是bin模式下载,那么文件大小是5073字节,运行无误 2、如果是ascii模式下载,文件大小是5061字节,而且运行时发生段错误 等会儿我比较下两个文件的差别 【 在 xiachenghai (渊源) 的大作中提到: 】 : 我用了一个UltraEdit软件,它里面带了一下ftp,传输成功了,看来在cmd里用ftp方式传输可能有局限性。 ☆─────────────────────────────────────☆ zyy08 (zyy) 于 (Fri Nov 20 16:02:54 2009) 提到: 你太有才了:) 【 在 hobby 的大作中提到: 】 : 我这里实验bin模式 : ftp> bin : 200 Type set to I. : ................... ☆─────────────────────────────────────☆ hobby (hobby) 于 (Fri Nov 20 19:14:37 2009) 提到: 这个传输模式的确比较折磨人,总结如下,如有错误欢迎指正 1、ASCII模式和BINARY模式的区别 区别是行结束符的处理,binary模式不对数据进行任何处理,asci模式将server的行结束符转换为本机的行结束符 2、不同OS下行结束符的表示 Unix下是\n,即0x0A Windows下是\r\n,即0x0D 0x0A Mac下是\r,即0x0D 3、不同模式的应用场景,这里引用flashFXP的帮助 ASCII This mode is appropriate for files which only contain plain text. Examples: html, php, asp, etc See ASCII for a list of appropriate file extensions. Binary This mode is used for files which do not contain only plain text. Examples: archives, images, and executables. 4、附加说明 关于使用的模式,上网找了一下,比较简单而且保险的策略是:无论何种文件均使用binary模式进行传输,特别的,文本文件可能由于行结束符表示不同造成显示和编辑问题的,可以传输前先用UE等工具进行转换,而不使用ASCII的传输方式。 5、疑问 关于ASCII传输模式下,行结束符的插入/替换操作好像有点儿问题 我自己对一个helloworld的可执行程序,分别用ascii和binary模式传输后,对16进制表示的文件进行了对比,发现ascii模式传输的文件,内容少了12个字节,而且丢掉的内容大多都是0x0D后边紧跟的那个0x00。这就有点儿说不通了。因为server在windows下,行结束符是0x0D 0x0A,那么ascii传输时,应当将0x0D 0x0A替换为0x0A,而不应该把0x0D 0x00替换为0x0D啊! ☆─────────────────────────────────────☆ xiachenghai (渊源) 于 (Fri Nov 20 21:29:57 2009) 提到: 这个总结的好,不错,不错^_^ 【 在 hobby 的大作中提到: 】 : 这个传输模式的确比较折磨人,总结如下,如有错误欢迎指正 : 1、ASCII模式和BINARY模式的区别 : 区别是行结束符的处理,binary模式不对数据进行任何处理,asci模式将server的行结束符转换为本机的行结束符 : ................... ☆─────────────────────────────────────☆ ssailing (sailing) 于 (Fri Nov 20 21:57:57 2009) 提到: 【 在 xiachenghai 的大作中提到: 】 : 我的程序如下: : #include <stdio.h> /*标准输入输出定义*/ : #include <string.h> : ................... 226-WARNING! 18 bare have linefeeds received in ASCIImode File may not have transferred correctly. 对于可执行文件最好用binary mode传输 这样传过来的文件不会有任何变化 ☆─────────────────────────────────────☆ hobby (hobby) 于 (Fri Nov 20 21:59:13 2009) 提到: 哇,一下就看出来了! 白天折腾了好一阵才找到这上头 欢迎以后多来版里逛逛哈 【 在 ssailing (sailing) 的大作中提到: 】 : 226-WARNING! 18 bare have linefeeds received in ASCIImode File may not have transferred correctly. : 对于可执行文件最好用binary mode传输 这样传过来的文件不会有任何变化
订阅后,新回复会通过你的通知中心匿名送达。
0 条回复
暂无回复 · 你可以订阅本帖等待新回复。