|
|
Регистрация Восстановить пароль |
Повторная активизация e-mail |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
|
|
Опции темы | Поиск в этой теме |
29.04.2009, 22:14 | #1 |
Пользователь
Регистрация: 29.04.2009
Сообщений: 33
|
Подключения файла
Доброго времени суток!!!
Работаю над небольшим проектом и встретил небольшую трудность. У меня есть некие функции которіе я описал в файле Functions.h Также есть 2 класса(будет больше но проблема уже здесь проявилась), каждый класс имеет свой файл-заголовок и спп. Так вот в обоих классах я должен использовать функции из файла Functions.h. Но если я подключаю его и в одном и в другом файле(в файлах спп) то мне линкер дает ошибку что я два раза определил одну и ту же функцию. Пробовал в том файле с функциями вставить #pragma once не помогает. Помогите мне плиз. |
29.04.2009, 22:31 | #2 |
В тени
Старожил
Регистрация: 19.12.2008
Сообщений: 5,788
|
Попробуйте использовать директивы препроцессора:
Код:
Вполне очевидно, чтобы что-то понять, необходимо книги читать.
Не нужно плодить бессмысленных тем. Вас Поиск избавит от многих проблем. ___________________________________ ___________________________________ _______ [=Правила форума=]_____[Поиск]_____[Литература по С++]____[Литература. Паскаль] |
29.04.2009, 22:39 | #3 | |
Пользователь
Регистрация: 29.04.2009
Сообщений: 33
|
Цитата:
1>Selection_Test.obj : error LNK2005: "int __cdecl randomint(int,int)" (?randomint@@YAHHH@Z) already defined in Mutation_Test.obj 1>Selection_Test.obj : error LNK2005: "double __cdecl randomd(void)" (?randomd@@YANXZ) already defined in Mutation_Test.obj Вот ошибки |
|
29.04.2009, 22:50 | #4 | |
В тени
Старожил
Регистрация: 19.12.2008
Сообщений: 5,788
|
Цитата:
Рабочий пример: Файл functions.h: Код:
Код:
Вполне очевидно, чтобы что-то понять, необходимо книги читать.
Не нужно плодить бессмысленных тем. Вас Поиск избавит от многих проблем. ___________________________________ ___________________________________ _______ [=Правила форума=]_____[Поиск]_____[Литература по С++]____[Литература. Паскаль] |
|
29.04.2009, 22:53 | #5 |
Тупой студент
Форумчанин
Регистрация: 12.05.2007
Сообщений: 614
|
2newkobra файл functions.h не забыл добавить в проект?
|
29.04.2009, 23:29 | #6 |
Пользователь
Регистрация: 29.04.2009
Сообщений: 33
|
попробовал ваш пример все работает.
Нет не забыл. При одном классе все работает когда создаю еще один не работает. Вот вложил структуру своего проекта: Mutation_Test и Selection_Test как раз те два класса. Они унаследованы от абстрактного класса описаного в файле Algo. Мой файл с функциями на самом деле названия RandomF.h, main.cpp содержит функцию main() Последний раз редактировалось newkobra; 29.04.2009 в 23:38. |
30.04.2009, 17:11 | #7 |
Пользователь
Регистрация: 29.04.2009
Сообщений: 33
|
может мне закинуть на емейл проект чтоб посмотрели у себя на компе?
|
30.04.2009, 19:53 | #8 |
Пользователь
Регистрация: 18.03.2009
Сообщений: 89
|
Кидай: pashan@yandex.ru
|
30.04.2009, 20:36 | #9 | |
Пользователь
Регистрация: 29.04.2009
Сообщений: 33
|
Цитата:
|
|
30.04.2009, 20:59 | #10 |
Пользователь
Регистрация: 18.03.2009
Сообщений: 89
|
Посмотрел.
Не знаю, почему именно так он не хочет линковать. Видимо, .h файл подключается только один раз, но компилятор из-за каких-то своих соображений решает, что функции надо включить в несколько объектных файлов. Решения у проблемы есть как минимум два: 1) Объявить обе функции randomint и randomd как inline. Тогда они встроятся в код и в итоге вообще как функции присутствовать не будут. И линковаться, соответственно, тоже не будут. 2) Сделать файл RandomF.cpp и в нем реализовать функции, а в заголовочном файле оставить только прототипы. Последний раз редактировалось Pashan; 30.04.2009 в 21:01. |
|
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
ПроВерка Подключения | &RiU | Общие вопросы Delphi | 8 | 18.10.2011 05:45 |
проверка подключения к Интернет | Noor | Работа с сетью в Delphi | 9 | 13.07.2011 01:44 |
Проверка подключения | Shouldercannon | Общие вопросы Delphi | 4 | 11.08.2008 14:41 |
Ошибка подключения к БД | CruiserD | БД в Delphi | 5 | 26.10.2007 14:42 |
Время подключения | vitalik007 | Работа с сетью в Delphi | 1 | 15.08.2007 13:10 |