У меня есть некоторый код C ++, который в 32-битной Windows XP генерирует DLL. Портируя проект под 64-битную Windows 7, я получаю только объектные файлы, но без DLL и без сообщений об ошибках.
Помимо версии для Windows, инструменты, используемые в двух системах, примерно одинаковы:
- MinGW
- gcc 3.4.5 на WinXP, gcc 4.6.1 на Win7
- CodeBlocks 10.05
Конфигурационные файлы makefiles и CodeBlocks совпадают.
Предупреждения, которые я получаю от gcc в Windows XP, не имеют отношения к делу.
Вот предупреждения, которые я получаю от gcc в Windows 7, и они тоже не актуальны:
S:\include\CThread.h|58|warning: attribute ignored in declaration of 'class DFS::Infrastructure::CThread'|
S:\include\CThread.h|58|warning: attribute for 'class DFS::Infrastructure::CThread' must follow the 'class' keyword|
S:\sw\WRXLL\CExcelSpreadsheet.cpp||In member function 'void CExcelSpreadSheet::SetCellFormat()':|
S:\sw\WRXLL\CExcelSpreadsheet.cpp|641|warning: deprecated conversion from string constant to 'CHAR*'|
S:\include\CThread.h|58|warning: attribute ignored in declaration of 'class DFS::Infrastructure::CThread'|
S:\include\CThread.h|58|warning: attribute for 'class DFS::Infrastructure::CThread' must follow the 'class' keyword|
S:\include\CThread.h|58|warning: attribute ignored in declaration of 'class DFS::Infrastructure::CThread'|
S:\include\CThread.h|58|warning: attribute for 'class DFS::Infrastructure::CThread' must follow the 'class' keyword|
S:\sw\WRXLL\FunctionImpl.cpp||In function 'void RetrieveAllRuns()':|
S:\sw\WRXLL\FunctionImpl.cpp|135|warning: unused variable 'BrakesHeaderFound'|
S:\include\CThread.h|58|warning: attribute ignored in declaration of 'class DFS::Infrastructure::CThread'|
S:\include\CThread.h|58|warning: attribute for 'class DFS::Infrastructure::CThread' must follow the 'class' keyword|
S:\sw\WRXLL\FunctionDef.h|137|warning: missing braces around initializer for 'char [256]'|
S:\sw\WRXLL\MenuDef.h|58|warning: missing braces around initializer for 'char [255]'|
S:\sw\WRXLL\MenuDef.h|91|warning: missing braces around initializer for 'char [255]'|
S:\include\CThread.h|58|warning: attribute ignored in declaration of 'class DFS::Infrastructure::CThread'|
S:\include\CThread.h|58|warning: attribute for 'class DFS::Infrastructure::CThread' must follow the 'class' keyword|
S:\sw\WRXLL\main.cpp||In function 'xloper* xlAddInManagerInfo(xloper*)':|
S:\sw\WRXLL\main.cpp|247|warning: deprecated conversion from string constant to 'char*'|
||=== Build finished: 0 errors, 16 warnings ===|
Что меня удивляет, так это то, что мне вообще не дают сообщения о том, что DLL не могла быть сгенерирована (я искал ее на всем жестком диске, на случай, если она была помещена где-то еще).
Это как если бы компоновщик вообще не вызывался ...
Создавая отдельный, фиктивный проект на Windows7, я получил DLL. Так что это не вина инструментов.
Спасибо за любую подсказку!