Я пытаюсь скомпилировать расширение PHP в VS2008. Это зависит от 3 других проектов, которые я связываю статически.
Раньше все работало нормально, когда у меня был весь код в одном файле .cpp.
Я разделил код на несколько файлов, чтобы сделать его более управляемым, и теперь он не будет компилироваться.
Я получаю несколько ошибок компоновщика (~ 100 на файл), LNK2005 (уже определено). Я думаю, что все они связаны с библиотекой времени выполнения.
Пока я пробовал
- Чистая перестройка.
- Убедитесь, что флаг / MTd одинаков во всех 4 проектах.
- Убедился, что все заголовки охраняются.
Есть идеи?
РЕДАКТИРОВАТЬ: Вот некоторые из ошибок:
Некоторые ошибки:
MPQBlock.obj : error LNK2005: _getwchar already defined in MPQArchive.obj
MPQBlock.obj : error LNK2005: _putwchar already defined in MPQArchive.obj
MPQBlock.obj : error LNK2005: _acosl already defined in MPQArchive.obj
MPQBlock.obj : error LNK2005: _asinl already defined in MPQArchive.obj
etc.
MPQFile.obj : error LNK2005: _asinf already defined in MPQArchive.obj
MPQFile.obj : error LNK2005: _atanf already defined in MPQArchive.obj
MPQFile.obj : error LNK2005: _atan2f already defined in MPQArchive.obj
MPQFile.obj : error LNK2005: _ceilf already defined in MPQArchive.obj
MPQFile.obj : error LNK2005: _cosf already defined in MPQArchive.obj
etc.
PHPExtension.obj : error LNK2005: _acosl already defined in MPQArchive.obj
PHPExtension.obj : error LNK2005: _asinl already defined in MPQArchive.obj
PHPExtension.obj : error LNK2005: _atanl already defined in MPQArchive.obj
PHPExtension.obj : error LNK2005: _atan2l already defined in MPQArchive.obj
etc.
zlibd.lib(zutil.obj) : warning LNK4217: locally defined symbol _malloc imported in function _zcalloc
zlibd.lib(zutil.obj) : warning LNK4217: locally defined symbol _free imported in function _zcfree
D:\Server\PHP\ext\php_mpq_library.dll : fatal error LNK1169: one or more multiply defined symbols found