当我使用MSYS编译某些内容时,./configure
步骤所花的时间可能比make
长。但是,Linux中的同一进程配置速度很快,生成速度很慢。这仅仅是MSYS中的某些设置使我的系统陷入困境吗?有没有人有办法解决吗?
最佳答案
典型的configure
脚本会执行很多启动小子流程的操作。在类似Unix的操作系统上,这是通过fork()
和exec()
函数调用完成的,它们具有非常特殊的语义,需要保留(例如,分叉后的写时复制共享内存)。在Windows上,子进程是用CreateProcess()
创建的,它具有非常不同的语义(例如,与父级完全分开的内存空间)。为了正确执行类Unix的脚本和程序,MSYS需要做很多仿真工作,以使在Windows上创建新进程的工作类似于Unix上的fork()/exec()
。这最终要比本机提供那些功能调用的OS慢。
关于msys - 为什么在MSYS中配置这么慢?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/2256214/