| Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
| Форум программистов > C/C++: Общие вопросы > Собрать проект в Borland C++ 3.1 |
| Автор: Fedor 17.2.2007, 11:57 | ||||||||
| Привет всем. Я вот сейчас сижу в легком замешательстве. Не получается в борландовском c++ 3.1 сделать элементарный проект из трех файлов: главного файла, хедера и файла с реализацией этого хедера. Собственно, вот код: Хедер t.h:
Реализация хедера. Файл t.cpp:
Главный файл test.cpp:
При линке вылазит ошибка
Возможно, стоит упомянуть что все три файла - находятся в проекте. Кроме этих файлов в проекте ничего нет. Может, у меня что-то с настройками, но вроде пересмотрел все, вроде ничего проблемного нет... P.S. В студии подобный код работает на ура. |
| Автор: apook 17.2.2007, 13:37 |
| Включи все файлы в командную строку компилятора tcc tcc -e a.cpp b.cpp c.cpp |
| Автор: Fedor 19.2.2007, 19:11 |
| Ага. Нашел в принципе некое решение проблемы. Нужно было в опциях проекта для каждого h-файла вручную выставлять опцию "Exclude from link". Т.е. линковщик cpp и h файлы компилировал в один объектник, насколько я понял и потом кричал что две одинаковые функции. В общем, такой уже вопрос, для общего ознакомления: зачем он это делает, можно ли все это как-то настроить, или где моя криворукость? Спс. |
| Автор: Kuvaldis 22.2.2007, 12:31 |
| Fedor, Включай в проект ТОЛЬКО *.cpp. Хедеры не трогай. Include-ы оставь. И все будет работать |
| Автор: dizzy1984 5.4.2007, 05:59 | ||||
поставив пточку с запятой ты определил процедуру с пустым телом
после чего определил ее снова с кодом вывода переенной ну не ставятся в c ; при объявлении процедуры. |
| Автор: Earnest 5.4.2007, 06:30 |
Неважное начало жизни на форуме - так категорически заявлять полную ерунду... Ты совершенно не прав. Пустое тело - это две скобки {}, а первое выражение - просто предварительное объявление функции. Их может быть сколько угодно, лишь бы друг другу не противоречили. |
| Автор: zkv 5.4.2007, 07:01 |
да никакого определения (definition) тут нет, это объявление (declaration) функции, или другими словами ее прототип. |
| Автор: dizzy1984 9.4.2007, 13:53 | ||
Это действительно просто декларация. Меня ввела в заблуждение пришедшая мне на память старая история про то как все начинающие программисты при переходе с pascal на c++ ставят ; после прототипа функции, после чего пишут на новой строке символ открывающейся фигурной скобки и получают ошибку компиляции. |