请问windows中mingw做出的程序速度会比VC++和BCB慢很多吗?windows mingw
请问windows中mingw做出的程序速度会比VC++和BCB慢很多吗?
不会。mingw/gcc的新版特别是4.7来编译的win程序,比如使用了winapi的程序,执行速度丝毫不比vc++或bcb或intel cc慢。
(图片来源网络,侵删)gcc4.7的优化已经非常强劲了。mingw慢的是编译速度,比vc慢一个数量级。mingw编译的程序的执行速度,丝毫不慢。
实践中像ffmpeg,ffdshow,mpc高清播放器这种视频编码和cpu媒体加速技术结合紧密程序,都用mingw编译。
测试效果和vc++、icc的或优或或劣比较不超过2%,可以忽略。
(图片来源网络,侵删)vc6/98编译出的执行档肯定比gcc4.7要差些,但vc6的编译速度比gcc快
MinGW生成的.exe文件是什么格式啊?怎么查看?
windows的应该都是pe格式的,elf的应该是linux及其他嵌入式系统的。
编译过后的程序分为debug版和release版,debug的exe可以在编程环境中调试。在编译的文件中嵌入调试文件的路径和名称,一般会生成调试符号信息,调试符号包括函数,变量的名称和类型信息,以及行数信息。不是让你直接看的,而是能够在编程环境里面调试,并查看具体信息的。mingw能在linux上运行么?
有的可以调用,有的不能调用,但是为了保持最大的兼容性,一些常规操作都是可以的,如:
(图片来源网络,侵删)算点东西,打印出来,就是一些标准c的基本函数
但是涉及到底层,比如驱动一台打印机打印东西,如果标准C中没有相关函数或者不兼容,就不能用了,相关的头文件可能在库文件的头文件中可以找到,但是都是简单定义,会将此类函数忽略,造成链接的时候,无法解析外部变量
所以人们通常都是这样做,涉及底层就用windows的 API函数,而在Linux就用标准的函数,大部分多是UNIX上相似的一些函数
说了这么多,举个例子吧:
你可以用printf();是因为此函数所要做的事,UNIX类(和Linux一样)和Windows都能很容易通过一种相似的方式实现,所以printf()可以在两个平台都能使用。
在UNIX中创建一个文件用一个函数createfile(xx,xx,xx),全部小写,3个参数,而在Windows上,要达到此函数相同功能,就只能用API,CreateFile(xx.xx.xx ....... ),注意大小写,共有7个参数,这两个函数是不同的平台下使用的。
Mingw内就有相关API函数的库文件,参考一下API,就什么事都能做了。
cygwin和mingw有什么区别么?
两个都是在windows平台上模拟Linux操作环境的工具。
cygwin用的是自己用c写的dll来调用。mingw用的是windows的系统dll。从执行上mingw的效率会高一点。但你知道有些东西linux上有的服务windows上未必有,所以cygwin的功能会齐全一些。到此,以上就是小编对于windows mingw ffmpeg qsv的问题就介绍到这了,希望这4点解答对大家有用。