Форум программистов, компьютерный форум CyberForum.ru

Несколько cpp модулей - C++

Восстановить пароль Регистрация
 
Van111
кодер с++
208 / 187 / 4
Регистрация: 03.08.2011
Сообщений: 2,585
Записей в блоге: 12
15.11.2012, 19:27     Несколько cpp модулей #1
разрабатывая один проект наталкнулся на такую фичу/баг

C++
1
2
unit1.h
int al;
C++
1
2
3
4
5
6
7
8
9
unit1.cpp
#include "windows.h"
#include "unit1.h" 
 
//Дальше все стандартно за исключением того, что заполняется структурка DEVMODE и устанавливаются DisplaySettings 
int WINAPI WinMain( HINSTANCE hInst, HINSTANCE hPrevInst, LPSTR lpCmd, int nShowCmd)
{
    return 0;
}
C++
1
2
3
unit2.cpp
#include "unit1.h"
extern int al;
1>unit2.obj : error LNK2005: "int al" (?al@@3HA) уже определен в unit1.obj
1>C:\Projects\test1\Debug\test1.exe : fatal error LNK1169: обнаружен многократно определенный символ - один или более


архангельский пишет что на борланде можно выкрутится через extern int al;
но на MVC 2010 это не помогло , что делать(этот код я взял для примера, чтоб не морочить вам головы своим проектом)
заранее огромное спасибо, извените за орфографические ошибки
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
15.11.2012, 19:27     Несколько cpp модулей
Посмотрите здесь:

C++ Не могу исправить ошибку :113 H:\Dev-Cpp\Проекты\уроки\Безымянный3.cpp cannot convert `IDirectDraw7**' to `IDirectDraw**' for argument `2' to `HRESULT DirectDrawCreate(GUID*, IDirectDraw**, IUnknown*)
C:\tsserver\Projects\cpp\codeblocks\MyComp\compiler\mmz\mmz. cpp|29|error: no match for 'operator=' in '* Item = * Source'| C++
С помощью командной строки >namberstr f1.cpp Определить число строк в файле с именем f1.cpp C++
Использовать void из 1.cpp в 2.cpp C++
Несколько *.cpp в одном проекте C++
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
castaway
Эксперт С++
4844 / 2983 / 367
Регистрация: 10.11.2010
Сообщений: 11,015
Записей в блоге: 10
Завершенные тесты: 1
15.11.2012, 19:33     Несколько cpp модулей #2
У тебя наоборот, в заголовочном файле надо описать её как extern, а определить в одном модуле.
Van111
кодер с++
208 / 187 / 4
Регистрация: 03.08.2011
Сообщений: 2,585
Записей в блоге: 12
15.11.2012, 19:38  [ТС]     Несколько cpp модулей #3
Цитата Сообщение от lazybiz Посмотреть сообщение
У тебя наоборот, в заголовочном файле надо описать её как extern, а определить в одном модуле.
спасибо, а она будет глобальной ?

Добавлено через 50 секунд
то есть - не статической ?
castaway
Эксперт С++
4844 / 2983 / 367
Регистрация: 10.11.2010
Сообщений: 11,015
Записей в блоге: 10
Завершенные тесты: 1
15.11.2012, 19:51     Несколько cpp модулей #4
Глобальной.
Van111
кодер с++
208 / 187 / 4
Регистрация: 03.08.2011
Сообщений: 2,585
Записей в блоге: 12
15.11.2012, 20:45  [ТС]     Несколько cpp модулей #5
а почему не получилось сделать так
класс камера
C++
1
Tcamera_system camera_system;
модуль 1
C++
1
//...............-----------
модуль 2(game_unit.cpp)
C++
1
extern Tcamera_system camera_system;
выводит
>main.obj : error LNK2005: "struct Tcamera_system camera_system" (?camera_system@@3UTcamera_system@@A) уже определен в game unit.obj

Добавлено через 17 минут
всё разобрался надо Tcamera_system camera_system; и extern Tcamera_system camera_system;
местами поменять
Evg
Эксперт С++Автор FAQ
 Аватар для Evg
16825 / 5246 / 321
Регистрация: 30.03.2009
Сообщений: 14,127
Записей в блоге: 26
15.11.2012, 20:48     Несколько cpp модулей #6
На всякий случай
Для чего нужен define?
Yandex
Объявления
15.11.2012, 20:48     Несколько cpp модулей
Ответ Создать тему
Опции темы

Текущее время: 19:26. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru