Форум программистов, компьютерный форум, киберфорум
Наши страницы

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
 
Рейтинг: Рейтинг темы: голосов - 15, средняя оценка - 4.87
G-Cat
16 / 16 / 1
Регистрация: 15.03.2009
Сообщений: 94
#1

linked error - C++

28.09.2009, 00:19. Просмотров 1924. Ответов 28
Метки нет (Все метки)

только начал программу писать и сразу траблы. Но по порядку.

main.cpp:
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
#include <iostream>
#include "newfunc.h"
 
using namespace std;
 
int main()
{
    system ("CLS");
    
    int quit;
    do
    {
        rusout("Введите координаты области, которую хотите удалить:\n");
        rusout("X: ");  int x;  cin >> x;
        rusout("Y: ");  int y;  cin >> y;
 
        rusout("\nЗакончить изменения? (1-да/0-нет): ");
        cin >> quit;                   
    }
    while(quit != 1 );
    
    system ("pause");
    return 0;
}
newfunc.h:
C++
1
int rusout(char *Str);
rusout.cpp

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
#include <iostream>
#include "newfunc.h"
 
using namespace std;
 
int rusout(char *Str)
{
    unsigned char c;
    for(int i = 0; Str[i] != '\0'; i++)
    {
        c = Str[i];
        
        if(c > 127)
            {
                if(c < 240)
                c -= 64;
                else
                c -= 16;
            }
        cout << c;
    }
}
Собственно DEV Cpp ругается так:
[Linker error] undefined reference to `rusout(char*)'

DMC компилирует, но при запуске говорит что это приложение не является win32.

Прошу сразу заметить прога ещё далека от завершение и потому пусть вас не смущает её несколько неказистая конструкция.

Собственно вопрос: Кто виноват и что делать?

ЗЫ: заранее спасибо за игнор\ответ\мат в ответ...
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
28.09.2009, 00:19
Здравствуйте! Я подобрал для вас темы с ответами на вопрос linked error (C++):

Ошибка Linked Error в wxDev C++ - C++
Всем доброго времени суток, не уверен , что написал тему в нужный раздел , но все таки, мне очень нужна помощь. Раньше пользовался...

[Linked Error] Unresolved External - C++
День добрый, камрады! Только недавно начал изучать С++ и, ожидаемо, столкнулся с проблемой. Сам разобраться пока не могу. Есть...

Linked List: error C2360: initialization of 'vp' is skipped by 'case' label - C++
Программа выдает ошибку . но я не понял в чем проблема . можете помочь исправить ? class Us { public: Us* prev; int k; ...

Linked List описание - C++
/*!Begin Snippet:filebegin*/ #ifndef _LINKEDLIST_H_ #define _LINKEDLIST_H_ using namespace std; /*!Begin Snippet:fullnode*/ ...

C-style Linked List - C++
Итак, изучал я, значит, C-style Linked List (не знаю, как будет по-русски) и столкнулся с такой проблемой: надо его заполнить. Вроде все...

Linked List класс - C++
Ребят! Помогите пожалуйста найти ошибку! Я все написал, но чтобы я не делал выбрасывает с ошибкой:( //List.h #pragma once ...

28
Evg
Эксперт CАвтор FAQ
18259 / 6384 / 440
Регистрация: 30.03.2009
Сообщений: 17,666
Записей в блоге: 28
29.09.2009, 15:03 #16
Цитата Сообщение от easybudda Посмотреть сообщение
Хуже того, даже не скомпилировалось (поменял обратно void на int)
В Dev-Cpp используется компилятор gcc/g++, который за ошибку это не считает. Если бы он посчитал это ошибкой, то до линковки дело бы не дошло. А потому у автора проблема не в этом
1
easybudda
Модератор
Эксперт CЭксперт С++
9695 / 5645 / 963
Регистрация: 25.07.2009
Сообщений: 10,850
29.09.2009, 15:20 #17
Цитата Сообщение от Evg Посмотреть сообщение
В Dev-Cpp используется компилятор gcc/g++, который за ошибку это не считает. Если бы он посчитал это ошибкой, то до линковки дело бы не дошло. А потому у автора проблема не в этом
Ага, g++ не ругнулся. Но всё равно не комильфо. Зачем в "правильно" написанной программе объявлять ничего не возвращающую функцию, как int? Получается, что на сарае #$% написано, а там брёвна лежат А по сути - да, видимо, просто компилирует ТС свою програмку неправильно...
1
Evg
Эксперт CАвтор FAQ
18259 / 6384 / 440
Регистрация: 30.03.2009
Сообщений: 17,666
Записей в блоге: 28
29.09.2009, 16:05 #18
Цитата Сообщение от easybudda Посмотреть сообщение
Зачем в "правильно" написанной программе объявлять ничего не возвращающую функцию, как int?
А зачем вообще люди временами ошибаются?

Цитата Сообщение от easybudda Посмотреть сообщение
просто компилирует ТС свою програмку неправильно...
"ТС" - это что?
1
easybudda
Модератор
Эксперт CЭксперт С++
9695 / 5645 / 963
Регистрация: 25.07.2009
Сообщений: 10,850
29.09.2009, 16:20 #19
Цитата Сообщение от Evg Посмотреть сообщение
"ТС" - это что?
"Топик Стартер" я думал... Где-то тут такая форма употреблялась, вроде... Увидел, повторил. Извиняюсь, если что-то перепутал.
А ошибаются люди, чтоб другие их поправляли, а не говорили, что и так сойдёт...
1
Evg
Эксперт CАвтор FAQ
18259 / 6384 / 440
Регистрация: 30.03.2009
Сообщений: 17,666
Записей в блоге: 28
29.09.2009, 16:26 #20
Цитата Сообщение от easybudda Посмотреть сообщение
"Топик Стартер" я думал... Где-то тут такая форма употреблялась, вроде... Увидел, повторил. Извиняюсь, если что-то перепутал.
Будем знать

Цитата Сообщение от easybudda Посмотреть сообщение
А ошибаются люди, чтоб другие их поправляли, а не говорили, что и так сойдёт...
Я всё к тому, что человек написал код, который формально ошибочный, но реально ошибка не проявляется, т.к. в месте вызова функции возвращаемое значение не используется. Да и в любом случае, если бы и использовалось, то проявилось бы это только на исполнении, а он пока слинковать бинарник не может. Т.е. ему надо сначала более актуальную проблему (ошибку) разрулить, а потом, если понадобится, до косяка с отсуствием return'а он скорее всего сам докопается
1
easybudda
Модератор
Эксперт CЭксперт С++
9695 / 5645 / 963
Регистрация: 25.07.2009
Сообщений: 10,850
29.09.2009, 16:34 #21
Evg, так я ж и не спорю...
Цитата Сообщение от easybudda Посмотреть сообщение
А по сути - да, видимо, просто компилирует ТС свою програмку неправильно...
1
G-Cat
16 / 16 / 1
Регистрация: 15.03.2009
Сообщений: 94
29.09.2009, 19:55  [ТС] #22
Всем ОГРОМНОЕ спасибо, что вызвались мне помочь. Синтаксических "ошибок" связанныйх с функциями уже давно нет, но напомню:

Цитата Сообщение от G-Cat Посмотреть сообщение
Прошу сразу заметить прога ещё далека от завершение и потому пусть вас не смущает её несколько неказистая конструкция.
Ладно, значится мы разобрались, что в создании/объявлении/инициализации и вообще в коде проблем у мя нет. Вопрос теберь будет звучать так (я думаю что один фиг он попадает в тему этого топика и новую тему создавать не надо): "Уважаемые знатоки, как скомпилировать на MinGW(ни он ли самый удачный порт GCC на windows?), DevCpp и Digital Mars данный проект?". Ну т.е. как уважаемый easybudda уже писал нужно просто сразу несколько файлов на компиляцию послать...только вот проблема, файлов у меня уже будет 5 и ето не конец...что каждое изменение и последующая проверка будут сопровождаться написанием в коммандной строке гигантских толмутов с перечислением файлов? Или есть другие варианты?

ЗЫ: по прежнему заранее благодарю за игнор\ответ\мат в ответ...
0
kravam
быдлокодер
1702 / 889 / 45
Регистрация: 04.06.2008
Сообщений: 5,498
29.09.2009, 20:47 #23
Ест вариант компилировать не из командной строки.
Создаёшь папку, пихаешь туда все НАПИСАННЫЕ ТОБОЙ файлы проекта (кроме тех *h которые поставляются со средой программирования.)
Затем открываешь в среде главный файл. Наверное, main.cpp И жмёшь на "скомпилировать". В DEV C++ по умолчанию это кнопка F9.

Потом разбираешься с ошибками.

Это просто, по-сермяжному.
А есть ещё в вышеупомянутой среде опции как СПЕЦИАЛЬНО создать именно проект. Но я с ними ещё не разбирался.
0
Monte-Cristo
2790 / 1376 / 30
Регистрация: 07.03.2009
Сообщений: 4,446
29.09.2009, 20:50 #24
Цитата Сообщение от Evg Посмотреть сообщение
Monte-Cristo, ну зачем ты людям неправильные советы даёшь.
Я давал вариант решения. С Dev-Cpp я не очень хорошо дружу Мне привычный что-то типа:
Bash
1
g++ main.cpp rusout.cpp -o some.exe
или
Bash
1
2
3
g++ main.cpp -c
g++ rusout.cpp -c
g++ main.o rusout.o -o some.exe

Цитата Сообщение от Evg Посмотреть сообщение
Исходники у него были написаны правильно.
Я ж за исходники слова не сказал.
0
Evg
Эксперт CАвтор FAQ
18259 / 6384 / 440
Регистрация: 30.03.2009
Сообщений: 17,666
Записей в блоге: 28
29.09.2009, 21:03 #25
Цитата Сообщение от Monte-Cristo Посмотреть сообщение
Я давал вариант решения
ТИпичный образец того, как НЕ надо людей учить
0
G-Cat
16 / 16 / 1
Регистрация: 15.03.2009
Сообщений: 94
29.09.2009, 21:25  [ТС] #26
я правильно понял что аналог линуксовой gcc на виндах это mingw?
0
Evg
Эксперт CАвтор FAQ
18259 / 6384 / 440
Регистрация: 30.03.2009
Сообщений: 17,666
Записей в блоге: 28
29.09.2009, 21:33 #27
Насколько я понимаю, gcc он и в африке gcc - консольный компилятор. А mingw, dev-cpp - это графические студии НАД компилятором. Т.е. в процессе работы они просто вызывают компилятор

Если это хозяйство нормально умеет работать с Makefile'ами - почитай тут

Добавлено через 1 минуту
Цитата Сообщение от Monte-Cristo Посмотреть сообщение
Я давал вариант решения
Кстати, это не "решение", а "затаптывание" проблемы
0
Monte-Cristo
2790 / 1376 / 30
Регистрация: 07.03.2009
Сообщений: 4,446
29.09.2009, 21:42 #28
Цитата Сообщение от Evg Посмотреть сообщение
ТИпичный образец того, как НЕ надо людей учить
Ну я, вообщем-то, на роль учителя и не претендую.. Никаких законов в программировании нет (есть лишь условности и реккомендации), и как любой проффесионал, я должен знать как можно обойти любую проблему. В данном случае, в связи со своей некомпетентностью по отношению к Dev-Cpp, я показал как можно обойти.

Цитата Сообщение от Evg Посмотреть сообщение
А mingw, dev-cpp - это графические студии НАД компилятором.
Dev-Cpp - это IDE (интегрированная среда разработки)..
MinGW - это порт GNU/GCC на ОС Windows.
Dev-Cpp по-умолчанию использует MinGW... Но также умеет работать и с другими компиляторами.
0
easybudda
Модератор
Эксперт CЭксперт С++
9695 / 5645 / 963
Регистрация: 25.07.2009
Сообщений: 10,850
29.09.2009, 22:06 #29
G-Cat, Мне под виндой cygwin нравится. Не то, чтоб прям совсем юниксовая консоль, но весьма похожа. А там уж и PERL, и gcc/g++, и куча всего интересного... Опять же man - имхо самый простой способ получить справку по команде/функции. Но и не без минусов, конечно... В любом случае - рекомендую. www.cygwin.com
0
29.09.2009, 22:06
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
29.09.2009, 22:06
Привет! Вот еще темы с ответами:

Template double linked list C++ - C++
Пытался реализовать шаблон класса двусвязный список, элементарами которого является класс структура. 1. Как теперь инициализировать класс...

Проверить программу с linked list - C++
Есть программа, но уверен много недочётов - сам не вижу. Например, правильно ли описаны private member? Так же не понятно с VALUE...

Связанный список (Linked list). - C++
Добрый день. Вот пишу функцию (в коде название - smash), которая бы из текущего списка создавала 2 других: парные числа и непарные, но...

Исправить ошибку в WxDev-C++: Error with debugging process: GDB Error: error, No source file named main.cpp - C++
Здравствуйте товарищи! Новенький я в си, установил wxDev-C++, скомпилировал, запускаешь - работает, а чтоб пошагово отладка - не...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
29
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru