cygwin下遇到system没有执行的问题

http://topic.csdn.net/u/20120329/15/f340043d-5b69-4af0-8be6-1652355e046e.html

RT!
在cygwin下做移植,从linux移植到windows下。在程序中用到系统函数system(),在cygwin平台下运行程序,这个system函数能成功执行,但是从windows平台下运行的话,就不行啦!为什么呀?? 
  eg:
#include
int main(void) 
{
  printf("========= ");
  system("ls");
  printf("========= ");
  return 0;
}
在从cygwin软件的界面运行,就可以成功显示路径下的文件。但是换个环境(程序连带cygwin1.dll一起打包换到其他电脑下),其他的代码都能执行,就这个sysytem函数没有调用!!

PS:可能会有人说在xp的path中添加cygwin/bin,但是这样子还是和cygwin环境有关系啦,而且不能保证每个使用我程序的用户以前都安装过cygwin。我是要换个环境的情况下还能够使用。

+++++++++++++++++++++++++++++++++++++++++++++++

加-mno-cygwin选项吧!
在Cygwin下用system函数,它还是会按照Linux的方式找命令,所以对于命令提示符支持的dir内部命令无效。
-mno-cygwin可以救你,试试吧。

引用 6 楼 的回复:

用-mno-cygwin选项的话,提示如下错误
gcc: The -mno-cygwin flag has been removed; use a mingw-targeted cross-compiler.
我再网上查找说,低版本的能用这个选项,高版本的不能用这个选项。我试试在重新下载个gcc。
PS:用这个命令的话,就可以调用system函数了吗?cygwin就是模拟linxu的,sy……

嗯,我忘了说了,gcc-3是支持的,gcc-4移除了。而Cygwin下cc和gcc默认是链接到gcc-4的。
你可以这样用gcc-3 -mno-cygwin test.c -o test。
如果用gcc-4的话,那么为Cygwin安装mingw了,不是gcc。
<script>window._bd_share_config={"common":{"bdSnsKey":{},"bdText":"","bdMini":"2","bdMiniList":false,"bdPic":"","bdStyle":"0","bdSize":"16"},"share":{}};with(document)0[(getElementsByTagName('head')[0]||body).appendChild(createElement('script')).src='http://bdimg.share.baidu.com/static/api/js/share.js?v=89860593.js?cdnversion='+~(-new Date()/36e5)];</script>
阅读(1090) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~
评论热议
原文地址:https://www.cnblogs.com/ztguang/p/12647199.html