Подобные проблемы страшны, потому что вам действительно некуда начинать.
Первый тест, который я бы сделал, - это поиск во всем исходном коде вашего проекта предмета, который соответствует "#define" и "true" или "#define" и "false". Если у вас есть кто-то, кто знает Perl, это должен быть быстрый сценарий.
Вы зависите от ссылок на некоторые внешние библиотеки, которые могли измениться? Если вы подозреваете какое-то странное в чем-то, с чем связываете, попробуйте выполнить следующие действия:
- Создайте программу, которая проверяет значение true / false.
- Скомпилируйте эту программу, убедившись, что она связывает все библиотеки с вашим исходным кодом.
- Запустите вашу программу и посмотрите, содержит ли ваша минимальная программа истинную / ложную ошибку, которая влияет на вашу проблему.
Если в этой минимальной программе есть ошибка, вы изолировали проблему до того, что делаете со связыванием. Следующий очевидный тест после этого - связать программу ни с чем, кроме стандартных библиотек C ++, чтобы проверить, не виноват ли ваш компилятор.
Наконец, перед переформатированием вашей машины попросите кого-нибудь скомпилировать ваш код. Это действительно легко, и если скрипт на Perl ничего не даст, я обязательно попрошу коллегу помочь.