множественное объявление проблема |
Здравствуйте, гость ( Вход | Регистрация )
множественное объявление проблема |
astra |
8.4.2014, 9:24
Сообщение
#1
|
Новичок Группа: Новичок Сообщений: 8 Регистрация: 7.2.2014 Пользователь №: 4050 Спасибо сказали: 0 раз(а) Репутация: 0 |
Приветсвую, нужно срочно решить ошибки:
есть файл: Раскрывающийся текст
файл.cpp Раскрывающийся текст
и еще один файл.сpp Раскрывающийся текст
выдаёт вот такое : Раскрывающийся текст debug/case1.o: In function `Z5Case1v': C:\media\build/../bsrv/case1.cpp:5: multiple definition of `alm' debug/main.o:C:\media\build/../bsrv/main.cpp:7: first defined here debug/case1.o: In function `Z5Case1v': C:\media\build/../bsrv/case1.cpp:5: multiple definition of `als' debug/main.o:C:\media\build/../bsrv/main.cpp:7: first defined here debug/case1.o: In function `Z5Case1v': C:\media\build/../bsrv/case1.cpp:6: multiple definition of `am' debug/main.o:C:\media\build/../bsrv/main.cpp:7: first defined here debug/case1.o: In function `Z5Case1v': C:\media\build/../bsrv/case1.cpp:6: multiple definition of `ak' debug/main.o:C:\media\build/../bsrv/main.cpp:7: first defined here debug/case1.o: In function `Z5Case1v': C:\media\build/../bsrv/case1.cpp:6: multiple definition of `at' debug/main.o:C:\media\build/../bsrv/main.cpp:8: first defined here debug/case1.o:case1.cpp:(.data+0x0): multiple definition of `al9' debug/main.o:main.cpp:(.data+0x0): first defined here debug/case1.o: In function `Z5Case1v': C:\media\build/../bsrv/case1.cpp:7: multiple definition of `al' debug/main.o:C:\media\build/../bsrv/main.cpp:8: first defined here debug/case1.o: In function `Z5Case1v': C:\media\build/../bsrv/case1.cpp:7: multiple definition of `alpr' debug/main.o:C:\media\build/../bsrv/main.cpp:8: first defined here debug/case1.o: In function `Z5Case1v': C:\media\build/../bsrv/case1.cpp:7: multiple definition of `arg' debug/main.o:C:\media\build/../bsrv/main.cpp:8: first defined here debug/case1.o: In function `Z5Case1v': C:\media\build/../bsrv/case1.cpp:8: multiple definition of `an' debug/main.o:C:\media\build/../bsrv/main.cpp:8: first defined here debug/case1.o: In function `Z5Case1v': C:\media\build/../bsrv/case1.cpp:8: multiple definition of `bet' debug/main.o:C:\media\build/../bsrv/main.cpp:8: first defined here debug/case1.o: In function `Z5Case1v': C:\media\build/../bsrv/case1.cpp:8: multiple definition of `con' debug/main.o:C:\media\build/../bsrv/main.cpp:8: first defined here debug/case1.o: In function `Z5Case1v': C:\media\build/../bsrv/case1.cpp:8: multiple definition of `chi' debug/main.o:C:\media\build/../bsrv/main.cpp:8: first defined here debug/case1.o: In function `Z5Case1v': C:\media\build/../bsrv/case1.cpp:8: multiple definition of `cal' debug/main.o:C:\media\build/../bsrv/main.cpp:8: first defined here debug/case1.o: In function `Z5Case1v': C:\media\build/../bsrv/case1.cpp:9: multiple definition of `ch' debug/main.o:C:\media\build/../bsrv/main.cpp:10: first defined here debug/case1.o: In function `Z5Case1v': C:\media\build/../bsrv/case1.cpp:9: multiple definition of `c' debug/main.o:C:\media\build/../bsrv/main.cpp:10: first defined here debug/case1.o:case1.cpp:(.data+0x4): multiple definition of `dx' debug/main.o:main.cpp:(.data+0x4): first defined here debug/case1.o:case1.cpp:(.data+0x8): multiple definition of `dx2' debug/main.o:main.cpp:(.data+0x8): first defined here debug/case1.o: In function `Z5Case1v': C:\media\build/../bsrv/case1.cpp:9: multiple definition of `deltx' debug/main.o:C:\media\build/../bsrv/main.cpp:10: first defined here debug/case1.o: In function `Z5Case1v': C:\media\build/../bsrv/case1.cpp:10: multiple definition of `dn' debug/main.o:C:\media\build/../bsrv/main.cpp:11: first defined here debug/case1.o: In function `Z5Case1v': C:\media\build/../bsrv/case1.cpp:10: multiple definition of `fm' debug/main.o:C:\media\build/../bsrv/main.cpp:11: first defined here debug/case1.o: In function `Z5Case1v': C:\media\build/../bsrv/case1.cpp:10: multiple definition of `f' debug/main.o:C:\media\build/../bsrv/main.cpp:11: first defined here debug/case1.o: In function `Z5Case1v': C:\media\build/../bsrv/case1.cpp:10: multiple definition of `f1' debug/main.o:C:\media\build/../bsrv/main.cpp:12: first defined here debug/case1.o: In function `Z5Case1v': C:\media\build/../bsrv/case1.cpp:10: multiple definition of `f2' debug/main.o:C:\media\build/../bsrv/main.cpp:12: first defined here debug/case1.o: In function `Z5Case1v': C:\media\build/../bsrv/case1.cpp:11: multiple definition of `fg' debug/main.o:C:\media\build/../bsrv/main.cpp:12: first defined here debug/case1.o: In function `Z5Case1v': C:\media\build/../bsrv/case1.cpp:11: multiple definition of `fx' debug/main.o:C:\media\build/../bsrv/main.cpp:13: first defined here debug/case1.o: In function `Z5Case1v': C:\media\build/../bsrv/case1.cpp:11: multiple definition of `dfi' debug/main.o:C:\media\build/../bsrv/main.cpp:13: first defined here debug/case1.o: In function `Z5Case1v': C:\media\build/../bsrv/case1.cpp:12: multiple definition of `fme' debug/main.o:C:\media\build/../bsrv/main.cpp:13: first defined here debug/case1.o: In function `Z5Case1v': C:\media\build/../bsrv/case1.cpp:12: multiple definition of `Fmin' debug/main.o:C:\media\build/../bsrv/main.cpp:14: first defined here debug/case1.o: In function `Z5Case1v': C:\media\build/../bsrv/case1.cpp:12: multiple definition of `Fmax' debug/main.o:C:\media\build/../bsrv/main.cpp:14: first defined here debug/case1.o: In function `Z5Case1v': C:\media\build/../bsrv/case1.cpp:12: multiple definition of `gam' debug/main.o:C:\media\build/../bsrv/main.cpp:14: first defined here debug/case1.o: In function `Z5Case1v': C:\media\build/../bsrv/case1.cpp:12: multiple definition of `gas' debug/main.o:C:\media\build/../bsrv/main.cpp:15: first defined here debug/case1.o: In function `Z5Case1v': C:\media\build/../bsrv/case1.cpp:13: multiple definition of `gal' debug/main.o:C:\media\build/../bsrv/main.cpp:15: first defined here debug/case1.o: In function `Z5Case1v': C:\media\build/../bsrv/case1.cpp:13: multiple definition of `ps' debug/main.o:C:\media\build/../bsrv/main.cpp:15: first defined here debug/case1.o: In function `Z5Case1v': C:\media\build/../bsrv/case1.cpp:13: multiple definition of `p1' debug/main.o:C:\media\build/../bsrv/main.cpp:16: first defined here debug/case1.o: In function `Z5Case1v': C:\media\build/../bsrv/case1.cpp:14: multiple definition of `p2' debug/main.o:C:\media\build/../bsrv/main.cpp:16: first defined here debug/case1.o: In function `Z5Case1v': C:\media\build/../bsrv/case1.cpp:14: multiple definition of `pl' debug/main.o:C:\media\build/../bsrv/main.cpp:16: first defined here debug/case1.o: In function `Z5Case1v': C:\media\build/../bsrv/case1.cpp:14: multiple definition of `pm' debug/main.o:C:\media\build/../bsrv/main.cpp:17: first defined here debug/case1.o: In function `Z5Case1v': C:\media\build/../bsrv/case1.cpp:14: multiple definition of `sim' debug/main.o:C:\media\build/../bsrv/main.cpp:17: first defined here debug/case1.o: In function `Z5Case1v': C:\media\build/../bsrv/case1.cpp:14: multiple definition of `sum' debug/main.o:C:\media\build/../bsrv/main.cpp:17: first defined here debug/case1.o: In function `Z5Case1v': C:\media\build/../bsrv/case1.cpp:15: multiple definition of `sigu' debug/main.o:C:\media\build/../bsrv/main.cpp:19: first defined here debug/case1.o: In function `Z5Case1v': C:\media\build/../bsrv/case1.cpp:15: multiple definition of `si' debug/main.o:C:\media\build/../bsrv/main.cpp:19: first defined here debug/case1.o: In function `Z5Case1v': C:\media\build/../bsrv/case1.cpp:15: multiple definition of `siga' debug/main.o:C:\media\build/../bsrv/main.cpp:19: first defined here debug/case1.o: In function `Z5Case1v': C:\media\build/../bsrv/case1.cpp:16: multiple definition of `sigr' debug/main.o:C:\media\build/../bsrv/main.cpp:19: first defined here debug/case1.o:case1.cpp:(.data+0xc): multiple definition of `test' debug/main.o:main.cpp:(.data+0xc): first defined here debug/case1.o: In function `Z5Case1v': C:\media\build/../bsrv/case1.cpp:16: multiple definition of `x' debug/main.o:C:\media\build/../bsrv/main.cpp:19: first defined here debug/case1.o: In function `Z5Case1v': C:\media\build/../bsrv/case1.cpp:16: multiple definition of `x1' debug/main.o:C:\media\build/../bsrv/main.cpp:20: first defined here debug/case1.o: In function `Z5Case1v': C:\media\build/../bsrv/case1.cpp:16: multiple definition of `x2' debug/main.o:C:\media\build/../bsrv/main.cpp:20: first defined here debug/case1.o: In function `Z5Case1v': C:\media\build/../bsrv/case1.cpp:16: multiple definition of `icase' debug/main.o:C:\media\build/../bsrv/main.cpp:20: first defined here debug/case1.o: In function `Z5Case1v': Help me... как исправить? что не так делаю... никогда этого не понимал( |
|
|
Iron Bug |
8.4.2014, 9:46
Сообщение
#2
|
Профессионал Группа: Модератор Сообщений: 1611 Регистрация: 6.2.2009 Из: Yekaterinburg Пользователь №: 533 Спасибо сказали: 219 раз(а) Репутация: 12 |
а тут нечего понимать. определение любой переменной может присутствовать только один раз. поэтому нельзя объявления переменных засовывать в заголовочники. это основы С/С++. читать Страуструпа или любые книжки по С/C++ для начинающих до тех пор, пока не будет уяснено определение переменной и её предварительное определение.
|
|
|
Влад |
8.4.2014, 9:47
Сообщение
#3
|
Участник Группа: Участник Сообщений: 146 Регистрация: 20.3.2009 Из: Санкт-Петербург Пользователь №: 627 Спасибо сказали: 46 раз(а) Репутация: 8 |
Вот это вот все:
перенести в файл *.cpp. А в твоем файле calculate.h приписать к ним волшебное слово extern. И, кстати, не забудь про стражи включения (guards) в файле *.h. Должно получиться примерно так:
|
|
|
astra |
8.4.2014, 10:19
Сообщение
#4
|
Новичок Группа: Новичок Сообщений: 8 Регистрация: 7.2.2014 Пользователь №: 4050 Спасибо сказали: 0 раз(а) Репутация: 0 |
Вот это вот все: перенести в файл *.cpp. А в твоем файле calculate.h приписать к ним волшебное слово extern. И, кстати, не забудь про стражи включения (guards) в файле *.h. Должно получиться примерно так:
сделал вот так calculete.h Раскрывающийся текст
case1.cpp Раскрывающийся текст
Раскрывающийся текст
.\bsrv\/calculate.h:10:36: warning: 'al9' initialized and declared 'extern' [enabled by default] ..\bsrv\/calculate.h:13:8: warning: 'dx' initialized and declared 'extern' [enabled by default] ..\bsrv\/calculate.h:13:20: warning: 'dx2' initialized and declared 'extern' [enabled by default] ..\bsrv\/calculate.h:18:8: warning: 'test' initialized and declared 'extern' [enabled by default] ..\bsrv\/calculate.h:19:8: warning: 'x' initialized and declared 'extern' [enabled by default] ..\bsrv\/calculate.h:23:12: warning: 'k' initialized and declared 'extern' [enabled by default] ..\bsrv\case1.cpp:3:29: error: redefinition of 'float al9' ..\bsrv\/calculate.h:10:36: error: 'float al9' previously defined here ..\bsrv\case1.cpp:6:8: error: redefinition of 'float dx' ..\bsrv\/calculate.h:13:8: error: 'float dx' previously defined here ..\bsrv\case1.cpp:6:12: error: redefinition of 'float dx2' ..\bsrv\/calculate.h:13:20: error: 'float dx2' previously defined here ..\bsrv\case1.cpp:11:8: error: redefinition of 'float test' ..\bsrv\/calculate.h:18:8: error: 'float test' previously defined here ..\bsrv\case1.cpp:12:8: error: redefinition of 'float x' ..\bsrv\/calculate.h:19:8: error: 'float x' previously defined here mingw32-make[1]: *** [debug/case1.o] Error 1 чего-то не работает( |
|
|
Влад |
8.4.2014, 11:12
Сообщение
#5
|
Участник Группа: Участник Сообщений: 146 Регистрация: 20.3.2009 Из: Санкт-Петербург Пользователь №: 627 Спасибо сказали: 46 раз(а) Репутация: 8 |
Сравни код, предложенный в посте #3, со своим кодом, найди различия и сопоставь их с сообщениями компилятора.
|
|
|
astra |
8.4.2014, 13:09
Сообщение
#6
|
Новичок Группа: Новичок Сообщений: 8 Регистрация: 7.2.2014 Пользователь №: 4050 Спасибо сказали: 0 раз(а) Репутация: 0 |
Сравни код, предложенный в посте #3, со своим кодом, найди различия и сопоставь их с сообщениями компилятора. calculate.h Раскрывающийся текст
calculate.cpp Раскрывающийся текст
case2_3.cpp Раскрывающийся текст
ошибки : debug/case2_3.o: In function `Z7Case2_3v': C:\media\bsrv/case2_3.cpp:12: multiple definition of `alm' debug/case1.o:C:\media\bsrv/case1.cpp:9: first defined here debug/case2_3.o: In function `Z7Case2_3v': C:\media\bsrv/case2_3.cpp:12: multiple definition of `als' debug/case1.o:C:\media\bsrv/case1.cpp:9: first defined here debug/case2_3.o: In function `Z7Case2_3v': C:\media\bsrv/case2_3.cpp:13: multiple definition of `at' debug/case1.o:C:\media\bsrv/case1.cpp:10: first defined here |
|
|
Влад |
8.4.2014, 13:25
Сообщение
#7
|
Участник Группа: Участник Сообщений: 146 Регистрация: 20.3.2009 Из: Санкт-Петербург Пользователь №: 627 Спасибо сказали: 46 раз(а) Репутация: 8 |
Ну так компилятор же на чистом английском языке пишет, в чем проблема. У тебя же переменные определены два раза, он даже пишет, какие именно и где.
Нет, все-таки бери любые книжки по С/C++ для начинающих и кури до тех пор, пока не будет понятна разница между объявлением и определением (declaration и definition). |
|
|
Текстовая версия | Сейчас: 27.4.2024, 2:21 |