2

我目前正在处理一个非常旧的代码库,试图解决构建问题。目前我们使用 msys 命令行指令构建项目config/build,这工作正常。但是,如果该项目是在 Visual Studio 2003 中构建的,然后逐步执行,则其行为会略有不同:

Foo在上面的类定义的全局范围内是以下行:

bool Foo::init = registerDescriptor();

registerDescriptor()方法在 中定义Foo)。

在构建 msys 后逐步执行此行时_initterm,crt0dat.c(.NET 2003 源代码的一部分)中的方法会拾取这一行,并运行 registerDescriptor 中的代码。

但是,如果我们在 Visual Studio 2003 中构建然后单步执行,则忽略此行。

msys 构建过程使用与 Visual Studio 相同的编译器,我知道的唯一区别是命令行参数和 msys 逐个文件夹构建。

4

0 回答 0