最近在考虑引擎跨平台的事,想起在vc++环境下自动链接的crt库,感觉可能在linux环境下表现不确定性,以及客户机器的依赖性等待问题,决定去掉crt库依赖。对于跨平台的疑问以后再考虑。

  去除方法很简单,直接忽略所有默认库即可。

  这时候会出现无法解析的命令,即是crt提供的函数。

  1.关闭缓冲区溢出检查(/GS-)

  2.重定义入口点函数(main之前crt已经初始化)

 

  后来发现完全不依赖的话光clib就能累死人,所以这样子不是个办法。。就找了个折中的办法。msvcrt.dll来自vs6.0。一般xp以上的机器上都自带,可以认为是系统组件。

最后结果:

#include "stdio.h"
int main()
{
    printf("sssss");
    return 0;
}

只加载了4个基本库,可以说是纯净的c环境。减少引入不能跨平台的api的可能性。

posted on 2013-10-30 14:59  烟雨红尘  阅读(467)  评论(0)    收藏  举报