Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > C/C++ программирование > Visual C++
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 16.03.2012, 08:20   #1
rengen
Пользователь
 
Регистрация: 19.01.2012
Сообщений: 12
По умолчанию Компилирование проекта с несколькими файлами

Буду не первым кто задаст подобный вопрос, так что дико извиняюсь. Итак пытаюсь компилить проект с 2-мя "сpp" и 2-мя "h" файлами и выскакивает подобное.
Код:
1>------ Построение начато: проект: GaussTank, Конфигурация: Debug Win32 ------
1>Построение начато 16.03.2012 7:03:18.
1>InitializeBuildStatus:
1>  Обращение к "Debug\GaussTank.unsuccessfulbuild".
1>ClCompile:
1>  Objects.cpp
1>  c:\program files (x86)\microsoft directx sdk (june 2010)\include\dinput.h: DIRECTINPUT_VERSION undefined. Defaulting to version 0x0800
1>  Создание кода...
1>  Пропуск... (изменения не обнаружены)
1>  main.cpp
1>ManifestResourceCompile:
1>  Для всех выходных данных обновления не требуется.
1>Objects.obj : error LNK2005: "struct tagRECT Rec" (?Rec@@3UtagRECT@@A) уже определен в main.obj
1>Objects.obj : error LNK2005: "unsigned long dwCursorNumber" (?dwCursorNumber@@3KA) уже определен в main.obj
1>Objects.obj : error LNK2005: "struct _D3DLIGHT9 Light" (?Light@@3U_D3DLIGHT9@@A) уже определен в main.obj

...

1>Objects.obj : error LNK2005: "struct D3DXMATRIX MatrixWorld" (?MatrixWorld@@3UD3DXMATRIX@@A) уже определен в main.obj
1>Objects.obj : error LNK2005: "struct D3DXVECTOR3 VectorDir" (?VectorDir@@3UD3DXVECTOR3@@A) уже определен в main.obj
1>C:\Users\Администратор\Documents\Visual Studio 2010\Projects\GaussTank\Debug\GaussTank.exe : fatal error LNK1169: обнаружен многократно определенный символ - один или более
1>
Я понимаю что написано, мол пару раз объявляешь ты переменные, непорядок, но как я не менял логику подключения всё равно не компилиться.
Стоит сказать что кроме стандартных библиотек использую еще библиотеки DirectX.
Я лучше выложу проект чтобы не приводить полного содержимого файлов (а то многовато получиться).

П.СЫ.: На поиски в гугл не отправлять. Уже лазил, по нему исправление ошибки не нашел;
Вложения
Тип файла: rar GaussTank.rar (9.7 Кб, 6 просмотров)

Последний раз редактировалось rengen; 16.03.2012 в 08:31.
rengen вне форума Ответить с цитированием
Старый 16.03.2012, 08:29   #2
rengen
Пользователь
 
Регистрация: 19.01.2012
Сообщений: 12
По умолчанию

но если вкратце описать файлы и их содержимое то вот:
******************
main.cpp
///////////////////////////
#include "main.h"

void WinMain(...)
{
...
}

******************


******************
main.h
//////////////////////////
#pragma once
#include "windows.h"

...

#include "DHINPUT.h"

#include "Objects.h"

...
******************


******************
Objects.cpp
///////////////////////////
#include "main.h"

class BULLET
{
public:
int X,Z;

BULLET();
~BULLET();

void DrawObject();
...
};

...

******************


******************
Objects.h
///////////////////////////
#pragma once
#include "main.h"

BULLET::BULLET()
{
...
}
...
******************
Include Guard тоже не предлагать изначально им самым и пользовался - не помогло.
rengen вне форума Ответить с цитированием
Старый 16.03.2012, 08:40   #3
Пепел Феникса
Старожил
 
Аватар для Пепел Феникса
 
Регистрация: 28.01.2009
Сообщений: 21,000
По умолчанию

если в .h описываете переменные то они должны быть extern,
а в соответствующем .cpp уже они сами(без extern)
Хорошо поставленный вопрос это уже половина ответа. | Каков вопрос, таков ответ.
Программа делает то что написал программист, а не то что он хотел.
Функции/утилиты ждут в параметрах то что им надо, а не то что вы хотите.
Пепел Феникса вне форума Ответить с цитированием
Старый 16.03.2012, 08:52   #4
rengen
Пользователь
 
Регистрация: 19.01.2012
Сообщений: 12
По умолчанию

Цитата:
Сообщение от Пепел Феникса Посмотреть сообщение
если в .h описываете переменные то они должны быть extern,
а в соответствующем .cpp уже они сами(без extern)
Не помогло. Тоже самое выскакивает.

Цитата:
Сообщение от rengen Посмотреть сообщение
Не помогло. Тоже самое выскакивает.
А нет вру. Помогло. Не в тот файл вставил. Спасибо.

Последний раз редактировалось ACE Valery; 16.03.2012 в 14:56.
rengen вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Компилирование FAR + MASM _PROGRAMM_ Assembler - Ассемблер (FASM, MASM, WASM, NASM, GoASM, Gas, RosAsm, HLA) и не рекомендуем TASM 9 13.04.2011 08:58
работа с несколькими файлами nik1905 Microsoft Office Excel 6 01.03.2011 13:25
Компилирование проекта на Delphi в ассемблер Legat Общие вопросы Delphi 3 10.04.2009 16:07
проблема при работе с несколькими исходными файлами Grind Помощь студентам 2 19.02.2008 19:37