phn 0 28 июля, 2005 Опубликовано 28 июля, 2005 (изменено) · Жалоба Я использую библиотеку верификации SCV совместно с SystemC на MS VC++ .NET 2003. После успешного создания lib-файлов вышеуказанных библиотек пытаюсь отбилдить примеры для MSVC, прилагающиеся к библиотеке SCV (хочу проверить работоспособность библиотек перед тем, как приступать к созданию своих проектов). Компилятор выдает ошибки о множественном описании имен: libcpmtd.lib(xmutex.obj) : error LNK2005: "public: void __thiscall std::_Mutex::_Lock(void)" (?_Lock@_Mutex@std@@QAEXXZ) already defined in test.obj libcpmtd.lib(xmutex.obj) : error LNK2005: "public: void __thiscall std::_Mutex::_Unlock(void)" (?_Unlock@_Mutex@std@@QAEXXZ) already defined in test.obj Debug/ex_11_softconstraint.exe : fatal error LNK1169: one or more multiply defined symbols found Такая ошибка возникает при использовании SCV как с SystemC 2.0.1, так и SystemC 2.1 Beta. Интересно, что при компиляции примеров, прилагающихся к самой библиотеке SystemC, ошибок не возникает. Но меня интересуют именно примеры SCV. Мне удалось обойти эту проблему, включив в свойства проекта в раздел Linker -> Command Line -> Additional Options строку /FORCE:MULTIPLE, однако я не знаю, насколько правильно такое решение. Сталкивался кто-нибудь с подобными проблемами? Может быть, есть другой путь решения? ------------------------------------------------------------ Нашел решение данной проблемы. Оказывается, библиотеки SystemC и SCV, а также свой проект, необходимо билдить в DEBUG конфигурации (а я раньше билдил в RELEASE). После того, как я перебилдил библиотеки в DEBUG конфигурации и подключил новые lib-файлы к примеру, все ошибки исчезли. Параметр /FORCE:MULTIPLE больше не использую. Благодарю всех за внимание! Изменено 29 июля, 2005 пользователем phn Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться