Модераторы: bsa
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> не получается раздельная компиляция 
:(
    Опции темы
kLASTER
Дата 28.5.2013, 20:33 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 38
Регистрация: 14.9.2011

Репутация: нет
Всего: нет



доброго времени.
Сейчас читаю главу раздельная компиляция, но что то не получается, хотя все вроде норм.
Код

//файл с шаблонами структур и функций
//coordin.h
#ifndef COORDIN_H_
#define COORDIN_H_

struct polar
{
  double distance;
  double angle;
};
struct rect
{
  double x;
  double y;
};

polar rect_to_polar(rect xypos);
void show_polar(polar dapos);

#endif

Далее файл с главной функцией
Код

//file1.cpp
#include <iostream>
#include <cstdlib>
#include "coordin.h"
using namespace std;

int main()
{
  rect rplace;
  polar pplace;
  
  cout << "Enter the x and y values: ";
  while(cin >> rplace.x >> rplace.y)
  {
    pplace = rect_to_polar(rplace);
    show_polar(pplace);
    cout << "Next two numbers (q to quit): ";
  };
  cout << "Done.\n";
  
  //system("PAUSE");
  cin.get();
  return 0;
}

 - здесь кстати при компиляции выдает: 
In function `main':   
  [Linker error] undefined reference to `rect_to_polar(rect)' 
  [Linker error] undefined reference to `show_polar(polar)' 
  ld returned 1 exit status 

и вот соответственно сами определения функций
Код

//file2.cpp
#include <iostream>
#include <cmath>
#include "coordin.h"

polar rect_to_polar(rect xypos)
{
  using namespace std;
  polar answer;
  answer.distance = 
    sqrt(xypos.x * xypos.x + xypos.y * xypos.y);
  answer.angle = atan2(xypos.y, xypos.x);
  return answer;
}
void show_polar(polar dapos)
{
  using namespace std;
  const double Rad_to_deg = 57.29577951;
  cout << "distance = " << dapos.angle * Rad_to_deg;
  cout << " degrees\n";
}

заранее спасибо.

Это сообщение отредактировал(а) kLASTER - 28.5.2013, 20:34
PM MAIL   Вверх
Нэраварин
Дата 28.5.2013, 23:32 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 46
Регистрация: 9.3.2009

Репутация: нет
Всего: нет



kLASTER а где вы определяете ф-ции rect_to_polar, show_polar скажите на милость...

Этот ответ добавлен с нового Винграда - http://vingrad.com
PM MAIL   Вверх
volatile
Дата 28.5.2013, 23:43 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Завсегдатай
Сообщений: 2107
Регистрация: 7.1.2011

Репутация: 16
Всего: 85



Цитата(kLASTER @  28.5.2013,  20:33 Найти цитируемый пост)
  [Linker error] undefined reference to `rect_to_polar(rect)' 
  [Linker error] undefined reference to `show_polar(polar)' 

скорей всего файл file2.cpp просто не включен в проект



PM MAIL   Вверх
kLASTER
Дата 29.5.2013, 08:54 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 38
Регистрация: 14.9.2011

Репутация: нет
Всего: нет



спасибо за ответы.
Дело в том, что я думал как в PHP, пишешь инклуд и файл подключаетя автоматически.
Теперь вопрос, как создать проект?
Сначала создаю новый проект(new proeсt) -> далее добавляю в проект(add to proect, только что добавлять fil1, file2 или coordin.h). А потом, я так понимаю, компиляция?

ЗЫ компилятор DEV c++ 4.9.9

Это сообщение отредактировал(а) kLASTER - 29.5.2013, 09:06
PM MAIL   Вверх
borisbn
Дата 29.5.2013, 09:05 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Завсегдатай
Сообщений: 4875
Регистрация: 6.2.2010
Где: Ростов-на-Дону

Репутация: 21
Всего: 135



Цитата(kLASTER @  29.5.2013,  08:54 Найти цитируемый пост)
что добавлять fil1, file2 или coordin.h)

в проект нужно добавлять cpp-шники. h-ники тоже можно, но не обязательно

Добавлено через 35 секунд
Цитата(kLASTER @  29.5.2013,  08:54 Найти цитируемый пост)
Дело в том, что я думал как в PHP, пишешь инклуд и файл подключаетя автоматически.

а кстати, было бы неплохо ))


--------------------
Женщины отличаются от программистов тем, что у них чары состоят из стрингов
PM MAIL Jabber   Вверх
mes
Дата 29.5.2013, 09:10 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


любитель
****


Профиль
Группа: Участник Клуба
Сообщений: 7954
Регистрация: 14.1.2006

Репутация: 79
Всего: 250



Цитата(borisbn @  29.5.2013,  08:05 Найти цитируемый пост)
а кстати, было бы неплохо )) 

только вот с/с++ компилит в объектные модули, которые на тот момент неизвестно с чем будут будут линковать..


--------------------
PM MAIL WWW   Вверх
kLASTER
Дата 29.5.2013, 09:12 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 38
Регистрация: 14.9.2011

Репутация: нет
Всего: нет



че та походу руки не из того места.
При компиляции выдает:
  multiple definition of `main' 
  first defined here 
  ld returned 1 exit status 
 C:\Users\ïê\Desktop\Makefile.win [Build Error]  [Project1.exe] Error 1

 Вот что это может быть? Где рыть ошибку?

Это сообщение отредактировал(а) kLASTER - 29.5.2013, 09:13
PM MAIL   Вверх
borisbn
Дата 29.5.2013, 09:32 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Завсегдатай
Сообщений: 4875
Регистрация: 6.2.2010
Где: Ростов-на-Дону

Репутация: 21
Всего: 135



Цитата(kLASTER @  29.5.2013,  09:12 Найти цитируемый пост)
что это может быть?

вообще-то, компилятор (вернее линковщик) всё объясняет
Цитата(kLASTER @  29.5.2013,  09:12 Найти цитируемый пост)
multiple definition of `main' 


Цитата(borisbn @  29.5.2013,  09:05 Найти цитируемый пост)
а кстати, было бы неплохо )) 

я говорил исключительно про IDE. Ведь могла бы, если я написал #include "blabla.h" поискать рядом blabla.cpp и предложить включить его в проект. Надеюсь, когда JetBrains родит, там будет нечто подобное


--------------------
Женщины отличаются от программистов тем, что у них чары состоят из стрингов
PM MAIL Jabber   Вверх
kLASTER
Дата 29.5.2013, 11:29 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 38
Регистрация: 14.9.2011

Репутация: нет
Всего: нет



Спасибо за ответы.
Действительно, компилятор мне говорил 
Цитата

multiple definition of `main'

PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "C/C++: Для новичков"
JackYF
bsa

Запрещается!

1. Публиковать ссылки на вскрытые компоненты

2. Обсуждать взлом компонентов и делиться вскрытыми компонентами

  • Действия модераторов можно обсудить здесь
  • С просьбами о написании курсовой, реферата и т.п. обращаться сюда
  • Вопросы по реализации алгоритмов рассматриваются здесь


Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, JackYF, bsa.

 
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | C/C++: Для новичков | Следующая тема »


 




[ Время генерации скрипта: 0.1276 ]   [ Использовано запросов: 21 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.