Я использую visual studio 2008. Я пытаюсь использовать библиотеку C++ в своем исходном коде. После установки библиотеки на моем компьютере у меня есть некоторые файлы include, а также некоторые файлы библиотеки. Кроме того, в папке bin есть msvcm80.dll, msvcp80.dll и msvcr80.dll.Странное поведение при построении проекта с использованием файла .lib
У меня возникла проблема с связыванием проекта, который я объяснил ниже. Я искал в Интернете, но я не нашел относительного ответа на мой вопрос.
я сделал следующие процедуры:
Я использовал программное обеспечение Explorer, Lib и выяснил, что .lib файлы построены в конфигурации выпуска.
Я установил решение визуальной студии, которое будет построено в режиме деблокирования для 32 бит. Я не был уверен, следует ли мне использовать 32 или 64. (Ниже я объяснил, что происходит, когда я меняю это на платформу x64).
Я добавил файлы библиотеки в зависимости от компоновщика и их путь в дополнительных библиотечных каталогах.
Включил заголовочный файл в исходный код.
Когда я пытаюсь построить решение, я получаю сообщение об ошибке «LNK2001: неразрешенный внешний символ» в функции, которую я вызывал в своем исходном коде. Я получаю ту же ошибку, даже если я удаляю зависимость библиотеки и удаляю ее путь в конфигурации компоновщика.
Мой вопрос в том, почему компоновщик не находит вызываемые функции в моем исходном коде в файлах библиотеки?
Когда я меняю платформу с Win32 на x64, я получаю ошибку LNK 2001, но по другой функции. Разница в том, что компоновщик жалуется на функцию, которую я не вызывал непосредственно в моем исходном коде.
Может ли кто-нибудь помочь мне определить причину этой ошибки? Пожалуйста, дайте мне знать, если я не объясню свою проблему четко.
Спасибо,
Ahmad
Возможно, это библиотека C, поэтому вам нужно написать #include в extern «C» {} Это просто гадание, обратитесь за помощью к владельцу библиотеки. –
Это библиотека C++. Я был бы признателен за ваши мысли. – AFP