Boost thread и UPX-сжатие == недопустимое приложение win32?

Когда я просто объявляю

boost::thread t1, t2;

в своей программе, а затем сжимаю .exe-файл с помощью UPX, сжатие выполняется успешно. Но когда я пытаюсь запустите сжатый exe, Windows сообщает мне, что это «недопустимое приложение win32».

Есть отчет об ошибке для UPX ( аналогичная ошибка ), но с другим сообщением об ошибке ( «The не удалось правильно инициализировать приложение (0xc0000005) ").

В моем случае ОС считает, что файл поврежден или что-то в этом роде, поэтому его нельзя даже запустить, чтобы показать ошибки! Почему ??

Win7x64, C ++, VisualStudio , boost 1.47, UPX3.07

странные новости:

  1. Распаковка exe приводит к повреждению исполняемого файла, который выдает ошибку точно такую ​​же , что и здесь . ( "Приложению не удалось выполнить правильно инициализировать (0xc0000005) ") И это для распакованного exe, не упакованного, как в отчете об ошибке .

  2. extern" C "void tss_cleanup_implemented (void) {} ​​ до включения bo Заголовок потока ost не имеет значения. Результат тот же.

main.cpp:

#include 

int main(int argc, char** argv)
{
    boost::thread t;
    return 0;
}

Может кто-нибудь попытается скомпилировать и сжать?

7
задан Sergey 25 November 2011 в 12:04
поделиться