Как использовать библиотеку c в большой кодовой базе C ++?
Я нашел немного хорошего c библиотека, и так как c и c ++ совместимы, это здорово для меня. У меня есть большая база кода со многими проектами, и я хочу использовать эту библиотеку в одном из проектов.
Итак, я построил библиотеку на диске C, и после этого я просто поместил ее в папку с проектом, с которым я хочу ее использовать, изменил ссылки в свойствах проекта, чтобы настроить таргетинг на эту библиотеку и т. Д.
После этого я вызвал функцию из одного из файлов cpp в моем файле send.c, который включал некоторые библиотечные файлы, и получил ошибку во время сборки
Precompiled header is from previous version of compiler
Поэтому я хотел спросить:
- Должен ли я создать библиотеку отдельно или это нормально, как я сделал?
- Как я должен исправить эти ошибки? (Я пытался перейти с .c в .cpp, но библиотека, чем есть много ошибок)
- Где я должен положить библиотеку? Есть ли хорошие соглашения? Так как сейчас он просто наклеен рядом с проектом
- Как может, если это возможно, предыдущая компиляция повлиять на новую сборку ?! Разве это не просто прекомпилирует это снова?
- В этой большой кодовой базе я не вижу так много автономных библиотек, как эта. Могу ли я как-то превратить его в один .lib-файл и как-нибудь проще использовать его, просто импортировав? Поскольку я не буду менять его, он всегда будет использоваться только для отправки сообщений. И как это есть куча вещей, которые должны быть настроены в каждом проекте, которые могли бы использовать его в будущем
Спасибо !
Примечание 1:
Я использую Visual Studio 2015 на Windows Server 2012 R2.
0
Решение
Исправлено это с помощью следующих шагов:
- Отключил предварительно скомпилированные заголовки
- Удаленный .pch файл
Так как это не исправило ошибку, я сделал еще несколько вещей:
- Изменено расширение send.c to send.cpp
- Свойства-> C / C ++ -> дополнительно->Компилировать как код C (/ TC)
- Свойства-> Общие-> Набор символов изменен на Использовать многобайтовый набор символов
И это исправило мою проблему 🙂
0
Другие решения
Других решений пока нет …