cygwin中的system为什末在xp下执行不成功?

ccjsj1 2010-12-11 11:27:37
如题:见下面,编译完成后在xp上无法执行成功??(把ls换成dir也不行的,dll文件已经拷贝过去)

#include <stdio.h>

int main(void) {
system("ls");
}
...全文
170 27 打赏 收藏 转发到动态 举报
写回复
用AI写文章
27 条回复
切换为时间正序
请发表友善的回复…
发表回复
ccjsj1 2012-03-31
  • 打赏
  • 举报
回复
执行是依赖cygwin的(1、需要把cygwin考过去,2、将cygwin加入PATH变量)
Nina_Nina_Nina 2012-03-29
  • 打赏
  • 举报
回复
[Quote=引用 21 楼 的回复:]

不需要放入system32里
把<cygwinpath>:\cygwin\bin 加入系统path变量
我这里在cmd里和cygwin里均无问题

ps:不需要大量使用Linux api的程序不建议使用cygwin,一般使用msys+mingw gcc,这个没dll的依赖。
[/Quote]

你好,我和LZ遇到了同样的问题,但是我要在任何环境下都能用,也就是说我换到其他电脑上也得能用,但是不能有去修改环境变量的操作,这样子用户体验会不好,如果是这样子的需求的话,需要怎么做呀?
ccjsj1 2010-12-14
  • 打赏
  • 举报
回复
谢谢各位帮助,已经解决了。

不用把dll文件拷到system32下面,把cygwin\bin目录加到xp的path中就可以了。
xunxun 2010-12-13
  • 打赏
  • 举报
回复
你可以使用msys和mingw试试么?
我这里无法重现你的问题
ccjsj1 2010-12-13
  • 打赏
  • 举报
回复
[Quote=引用 21 楼 xunxun1982 的回复:]
不需要放入system32里
把<cygwinpath>:\cygwin\bin 加入系统path变量
我这里在cmd里和cygwin里均无问题

ps:不需要大量使用Linux api的程序不建议使用cygwin,一般使用msys+mingw gcc,这个没dll的依赖。
[/Quote]

dll文件是在d:\cygwin\bin中考过去的,而且该目录已经加到xp的path路径中了。
xunxun 2010-12-13
  • 打赏
  • 举报
回复
不需要放入system32里
把<cygwinpath>:\cygwin\bin 加入系统path变量
我这里在cmd里和cygwin里均无问题

ps:不需要大量使用Linux api的程序不建议使用cygwin,一般使用msys+mingw gcc,这个没dll的依赖。
ForestDB 2010-12-13
  • 打赏
  • 举报
回复
这一套的东西都要在cygwin的环境下运行。
xunxun 2010-12-12
  • 打赏
  • 举报
回复
[Quote=引用 18 楼 ccjsj1 的回复:]

顶下,帮找找原因啊。
[/Quote]
贴出你现在的代码
以及你使用的cygwin的gcc版本
ccjsj1 2010-12-12
  • 打赏
  • 举报
回复
顶下,帮找找原因啊。
ccjsj1 2010-12-12
  • 打赏
  • 举报
回复
现在的代码见下面,在cygwin编译好后可以执行,可以显示当前文件;在xp的cmd下面可以执行(dll文件已经考到system32目录中了),但无任何显示??

cygwin的gcc版本是4.3.4

#include <stdio.h>
int main(void) {
system("ls");
}


xp下面执行结果,不能显示当前目录内容。
D:\cygwin\home\neo\test>t3.exe

D:\cygwin\home\neo\test>
Liao- 2010-12-11
  • 打赏
  • 举报
回复
#include<dos.h>//这是dos头文件
ccjsj1 2010-12-11
  • 打赏
  • 举报
回复
[Quote=引用 13 楼 xunxun1982 的回复:]
引用 12 楼 ccjsj1 的回复:

上面的没说清楚,可以执行,但是什末都没有显示。


你怎么运行的,如果在shell里应该没问题,直接双击的话,你得加入system("pause")之类的东西
[/Quote]

在xp的xmd命令行中执行的,可以执行,但是什末都不显示。
ccjsj1 2010-12-11
  • 打赏
  • 举报
回复
为什麽呢?。

把D:\cygwin\bin加到xp的path中了,可以执行,但是什末都不显示。单独可以用ls命令的。
沭水河畔 2010-12-11
  • 打赏
  • 举报
回复
[Quote=引用 12 楼 ccjsj1 的回复:]

上面的没说清楚,可以执行,但是什末都没有显示。
[/Quote]
我这里是可以显示的啊,因为我把cygwin的bin目录加到Windows的环境变量里了,也就是说我可以在Windows的命令提示符里使用cygwin的命令工具,比如which,ls,grep等等。
ccjsj1 2010-12-11
  • 打赏
  • 举报
回复
[Quote=引用 8 楼 xunxun1982 的回复:]
ls虽然不是,但是可以加入cygwin的bin/msys的 bin 到path是可以执行的
[/Quote]

把ls的路径加入path后,在cmd中可以执行,但是什末都不显示。
xunxun 2010-12-11
  • 打赏
  • 举报
回复
[Quote=引用 12 楼 ccjsj1 的回复:]

上面的没说清楚,可以执行,但是什末都没有显示。
[/Quote]

你怎么运行的,如果在shell里应该没问题,直接双击的话,你得加入system("pause")之类的东西
ccjsj1 2010-12-11
  • 打赏
  • 举报
回复
上面的没说清楚,可以执行,但是什末都没有显示。
ccjsj1 2010-12-11
  • 打赏
  • 举报
回复
[Quote=引用 4 楼 liubingqian 的回复:]
C/C++ code

#include <stdlib.h>

int main(void)
{
system("cmd.exe /c dir");

return 0;
}
[/Quote]

在cygwin下编译完后,xp的cmd中是不能执行的。
xunxun 2010-12-11
  • 打赏
  • 举报
回复
[Quote=引用 9 楼 athenacle_ 的回复:]

引用 8 楼 xunxun1982 的回复:

ls虽然不是,但是可以加入cygwin的bin/msys的 bin 到path是可以执行的



这样的话要加全路径。。。
[/Quote]
我是说把bin加入windows 系统path
Athenacle_ 2010-12-11
  • 打赏
  • 举报
回复
[Quote=引用 8 楼 xunxun1982 的回复:]

ls虽然不是,但是可以加入cygwin的bin/msys的 bin 到path是可以执行的
[/Quote]


这样的话要加全路径。。。
加载更多回复(7)

69,371

社区成员

发帖
与我相关
我的任务
社区描述
C语言相关问题讨论
社区管理员
  • C语言
  • 花神庙码农
  • 架构师李肯
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧