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……
用-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。
相关热门文章
给主人留下些什么吧!~~
评论热议