Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
Форум программистов > C/C++: Общие вопросы > как подключить .с файл к проекту |
Автор: Hose 6.6.2006, 10:57 | ||
Приветствую. Пишу програму в VS 2003. хочу в своей программе использовать некоторую опенсорсную библиотеку(написанную мною). Библиотека в Си стиле и состоит из 2х фалов: ххх.с и ххх.h Добавляю оба файла в проект. делаю #include "xxx.h". Нажимаю билд. мне выдает:
если изменить имя файла на ххх.cpp или в его свойствах установить Compile as C++ или просто сделать #include xxx.c, то все прекрасно работает. Так вот собственно вопрос почему так? как правильнее подключать Сишные файлы? Спасибо. |
Автор: Prehistorik 6.6.2006, 11:53 |
Ээээ ... А как ты объявляешь функции в *.c файле? |
Автор: Earnest 6.6.2006, 18:45 |
Вoт только #include "xxx.c" не надо делать... C и С++ функции по разному компилируются (получают разные имена). Когда ты компилируешь c-файл, они, надо полагать, компилируются как C... А main ожидает (ищет) C++ имена. Для начала определись, что тебе нужно: C++ или С. Если тебе все же нужен именно C, опиши функции в h-файле как extern "C". В противном случае либо переименуй файл в .cpp, либо поставь опцию "компилировать как C++" (лучше первое). |
Автор: ZeusAtVingrad 6.6.2006, 19:23 |
Так если один и тот же компилятор в одном и том же проекте компилит разные файлы, то уж разберётся он, наверное, в именах функций-то. Сдаётся мне, что у него просто при сборке не указан второй объектный файл. ИМХО. |
Автор: ZeusAtVingrad 6.6.2006, 20:24 |
А, ну да - это я пропустил. Просто со "средами" я с универа не работаю, всё как-то больше makefile'ами. |
Автор: Hose 7.6.2006, 13:49 | ||
Всем cпасибо. Сделал
|