Почему _initterm может пропустить указатель на функцию при компиляции в Visual Studio 2003, но не при использовании msys config / build?

В настоящее время я работаю над очень старой кодовой базой, пытаясь решить проблему сборки. В настоящее время мы строим проекты, используя инструкцию командной строки 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 создает папку за папкой.

2

Решение

Задача ещё не решена.

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]