![]() |
1. Пользуйтесь тегами кода. - [code] ... [/code]
2. Точно указывайте язык, название и версию компилятора (интерпретатора).
3. Название темы должно быть информативным.
В описании темы указываем язык!!!
![]() ![]() |
![]() |
Leidek |
![]()
Сообщение
#1
|
Группа: Пользователи Сообщений: 5 Пол: Мужской Репутация: ![]() ![]() ![]() |
Я уже полгода наверное мучаюсь с C++. Постоянно Code::Blocks и Microsoft Visual 2008 выдают ошибки.
Кто разбирается - напишите пожалуйста небольшой тест-код для MS Visual 2008, чтобы по выдающим ошибкам вы нашли проблему.. |
volvo |
![]()
Сообщение
#2
|
Гость ![]() |
Ты возьми "Hello, World", откомпилируй его и покажи результат. А уж если нет ошибок в "Hello, World" - значит присоединяй свой код, ошибки в нем...
|
Leidek |
![]()
Сообщение
#3
|
Группа: Пользователи Сообщений: 5 Пол: Мужской Репутация: ![]() ![]() ![]() |
#include "stdafx.h"Вот что я написал. А вот что эта гадина выдает при компиляции - >------ Построение начато: проект: First_primer, Конфигурация: Debug Win32 ------ 1>Компиляция... 1>First_primer.cpp 1>Компоновка... 1>test.obj : error LNK2005: _main уже определен в First_primer.obj 1>E:\My Documents\Visual Studio 2008\Projects\First_primer\Debug\First_primer.exe : fatal error LNK1169: обнаружен многократно определенный символ - один или более 1>Журнал построения был сохранен в "file://e:\My Documents\Visual Studio 2008\Projects\First_primer\First_primer\Debug\BuildLog.htm" 1>First_primer - ошибок 2, предупреждений 0 ========== Построение: успешно: 0, с ошибками: 1, без изменений: 0, пропущено: 0 ========== Добавлено через 4 мин. Ну здесь я догадался исключить First_pramer.obj из проекта. Но теперь у меня появляется черное окошечко при компиляции и исчезает. А внизу пишет что без ощибок. |
volvo |
![]()
Сообщение
#4
|
Гость ![]() |
Цитата Но теперь у меня появляется черное окошечко при компиляции и исчезает. А внизу пишет что без ощибок. При компиляции или при запуске? Если при запуске - то так и должно быть, ты ж не задерживаешь окно до нажатия любой клавиши, а сразу завершаешь программу. Так с чего оно должно задерживаться?#include "stdafx.h" |
Leidek |
![]()
Сообщение
#5
|
Группа: Пользователи Сообщений: 5 Пол: Мужской Репутация: ![]() ![]() ![]() |
Volvo, спасибо. Разобрался. Проще использовать getchar(); Хотя и там свои глюки. Спасибо за советы))
|
Getus |
![]() ![]()
Сообщение
#6
|
![]() Группа: Пользователи Сообщений: 1 Пол: Мужской Реальное имя: Ольга Репутация: ![]() ![]() ![]() |
Здравствуйте!
так что все таки обозначает ошибка "обнаружен многократно определенный символ"???? -------------------- Все люди делятся на 10 типов: те, кто понимают двоичную систему счисления и те, кто нет:))
|
volvo |
![]()
Сообщение
#7
|
Гость ![]() |
То и означает, что переменная (ну, если не переменная - то константа, или еще какая сущность - смысл от этого не меняется) с одинаковым именем была описана в разных единицах трансляции. Вот смотри:
f1.cpp #include <iostream> f2.cpp int i = 15; Заметила, что в обоих файлах присутствует переменная i? Так вот на этапе компиляции - все в порядке - в каждом файле - своя переменная, файл f1.cpp прекрасно компилируется в f1.obj, f2.cpp - в f2.obj... И тут запускается линкер. Которому надо собрать это все воедино, в exe-шник. А у линкера-то как раз большие проблемы: и в одном и в другом файле он находит упоминание о том, что должна быть переменная i... Но два объекта с одинаковым именем существовать в программе не могут. И какую переменную линкер должен выбрать? Случайную, а вторую - просто вышвырнуть из проекта? Линкер поступает проще: он сообщает программисту об ошибке, и программист должен решать, что выбросить, а что оставить... |
![]() ![]() |
![]() |
Текстовая версия | 22.07.2025 2:28 |