Прекомпилированный заголовок взят из предыдущей версии компилятора

Как использовать библиотеку c в большой кодовой базе C ++?

Я нашел немного хорошего c библиотека, и так как c и c ++ совместимы, это здорово для меня. У меня есть большая база кода со многими проектами, и я хочу использовать эту библиотеку в одном из проектов.

Итак, я построил библиотеку на диске C, и после этого я просто поместил ее в папку с проектом, с которым я хочу ее использовать, изменил ссылки в свойствах проекта, чтобы настроить таргетинг на эту библиотеку и т. Д.

После этого я вызвал функцию из одного из файлов cpp в моем файле send.c, который включал некоторые библиотечные файлы, и получил ошибку во время сборки

Precompiled header is from previous version of compiler

Поэтому я хотел спросить:

  1. Должен ли я создать библиотеку отдельно или это нормально, как я сделал?
  2. Как я должен исправить эти ошибки? (Я пытался перейти с .c в .cpp, но библиотека, чем есть много ошибок)
  3. Где я должен положить библиотеку? Есть ли хорошие соглашения? Так как сейчас он просто наклеен рядом с проектом
  4. Как может, если это возможно, предыдущая компиляция повлиять на новую сборку ?! Разве это не просто прекомпилирует это снова?
  5. В этой большой кодовой базе я не вижу так много автономных библиотек, как эта. Могу ли я как-то превратить его в один .lib-файл и как-нибудь проще использовать его, просто импортировав? Поскольку я не буду менять его, он всегда будет использоваться только для отправки сообщений. И как это есть куча вещей, которые должны быть настроены в каждом проекте, которые могли бы использовать его в будущем

Спасибо !

Примечание 1:
Я использую Visual Studio 2015 на Windows Server 2012 R2.

0

Решение

Исправлено это с помощью следующих шагов:

  1. Отключил предварительно скомпилированные заголовки
  2. Удаленный .pch файл

Так как это не исправило ошибку, я сделал еще несколько вещей:

  1. Изменено расширение send.c to send.cpp
  2. Свойства-> C / C ++ -> дополнительно->Компилировать как код C (/ TC)
  3. Свойства-> Общие-> Набор символов изменен на Использовать многобайтовый набор символов

И это исправило мою проблему 🙂

0

Другие решения

Других решений пока нет …