Я подъемы этих типов ошибок в проекте MFC VS6 во время связывания приложения:, как избежать «уже определена ошибки» в C++
msvcrt.lib(MSVCRT.dll) : error LNK2005: _atoi already defined in LIBC.lib(atox.obj)
Я знаю, что это значит (функция существует в 2-х различных библиотеках); для его решения мне пришлось бы исключить одну из двух библиотек (msvcrt.lib
или libc.lib
).
Но если я это сделаю, есть все виды нерешенных внешних ошибок. Поэтому я хотел бы использовать обе библиотеки.
Есть ли способ рассказать компоновщику, что я хочу использовать функцию _atoi
в libc.lib
, а не в msvcrt.lib
(или наоборот)?
Любая помощь или направление были бы замечательными.
У меня была аналогичная проблема, так как я не очень хорошо знаком с неуправляемым миром, для меня было немного неожиданностью, что вам могут понадобиться разные версии сторонней библиотеки, в зависимости от того, какие библиотеки времени выполнения имеют ваш код и эта библиотека использовать. Я загрузил стороннюю библиотеку и попытался связать ее с проектом в VC++ 2005. Оказалось, что используемая библиотека и более ранняя версия библиотеки времени выполнения (a?) - LIBCP.LIB. К счастью, сторонняя библиотека имела свой источник, поэтому я смог завершить его с помощью библиотеки времени исполнения VC2005. Интересно, как бы я решил это без источника. – axk