Модераторы: bsa
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> ERROR LNK2019;LNK1120 
:(
    Опции темы
Jiminik
Дата 14.9.2012, 22:51 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 4
Регистрация: 14.9.2012

Репутация: нет
Всего: нет



Всем доброго времени суток.
Пытался написать простую программу перевода из фарлонгов в ярды, но вылазиют ошибки при компиляции.
Сама программа:
Код
#include <iostream>
int farlongs(int);
    int main()
{
    using namespace std;
    int farlong;
    cout << "Enter the weight in stone: ";
    cin >> farlong;
    int yards = farlongs(farlong);
    cout << farlong << "farlong= ";
    cout << yards << "yards " << endl;
    system("pause");
    return 0;
}
int farlong(int sts)
{
    return 220 * sts;
}

Ошибки:
Цитата

11.obj : error LNK2019: ссылка на неразрешенный внешний символ "int __cdecl farlongs(int)" (?farlongs@@YAHH@Z) в функции _main
E:\Proect\11\Debug\11.exe : fatal error LNK1120: 1 неразрешенных внешних элементов

Компилятор VS 2010.
Помогите пожалуйста.

Модератор: не забываем пользоваться кнопочкой "Код"
PM MAIL   Вверх
Gluttton
Дата 14.9.2012, 23:04 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Начинающий
***


Профиль
Группа: Завсегдатай
Сообщений: 1170
Регистрация: 28.8.2008
Где: Феодосия

Репутация: нет
Всего: 54



Jiminik, при предварительном объявлении указано:
Код

int farlongs(int);


А при определении:
Код

int farlong(int sts)


P.S.
Ситуация усугубляется наличием переменной:
Код

int farlong;



--------------------
Слава Україні!
PM MAIL   Вверх
Jiminik
Дата 14.9.2012, 23:05 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 4
Регистрация: 14.9.2012

Репутация: нет
Всего: нет



Как мне быть, подскажите пожалуйста.
Вторую неделю бьюсь с этой главой :(

Добавлено через 1 минуту и 9 секунд
Нужно переменную убрать?
PM MAIL   Вверх
Gluttton
Дата 14.9.2012, 23:13 (ссылка) |    (голосов:1) Загрузка ... Загрузка ... Быстрая цитата Цитата


Начинающий
***


Профиль
Группа: Завсегдатай
Сообщений: 1170
Регистрация: 28.8.2008
Где: Феодосия

Репутация: нет
Всего: 54



Цитата(Jiminik @  14.9.2012,  23:05 Найти цитируемый пост)
Нужно переменную убрать? 

Нет же (про переменную это я просто к слову)!

Нужно дать линковщику обещанную во второй строке функцию:
Код

int farlongs(int);


А для этого нужно исправить опечатку в пятнадцатой строке и вместо:
Код

int farlong(int sts)

Написать:
Код

int farlongs(int sts)

Т.е. добавить букву "s" в имени функции.




--------------------
Слава Україні!
PM MAIL   Вверх
Jiminik
Дата 14.9.2012, 23:14 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 4
Регистрация: 14.9.2012

Репутация: нет
Всего: нет



АААА, во я дурак.
разобрался.
пасибо.
закрывайте тему. smile 
PM MAIL   Вверх
Gluttton
Дата 14.9.2012, 23:22 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Начинающий
***


Профиль
Группа: Завсегдатай
Сообщений: 1170
Регистрация: 28.8.2008
Где: Феодосия

Репутация: нет
Всего: 54



Цитата(Jiminik @  14.9.2012,  23:14 Найти цитируемый пост)
АААА, во я дурак.

На самом деле это просто неудачное стечение обстоятельств. Если бы не было использовано предварительное объявление, а выполнено определение функции farlongs непосредственно перед main, и при этом не было бы одноименной переменной, то при этой же самой ошибке было бы выдано более внятное сообщение об ошибке компилятором. Т.е. как то так:
Код

#include <iostream>

int farlong(int sts)
{
    return 220 * sts;
}

int main()
{
    using namespace std;
    int f;
    cout << "Enter the weight in stone: ";
    cin >> f;
    int yards = farlongs(f);
    cout << f << "farlong= ";
    cout << yards << "yards " << endl;
    system("pause");
    return 0;
}


Наверное...


Цитата(Jiminik @  14.9.2012,  23:14 Найти цитируемый пост)
пасибо

Незачто.


Цитата(Jiminik @  14.9.2012,  23:14 Найти цитируемый пост)
закрывайте тему. smile  

Это делает тот, кто задает вопрос.


--------------------
Слава Україні!
PM MAIL   Вверх
Jiminik
Дата 14.9.2012, 23:45 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 4
Регистрация: 14.9.2012

Репутация: нет
Всего: нет



Объяснили даже еще проще чем в книге.
Сначало не понимал поочередность процессов программы, делал по образцу как написано у С.Прата.
После Ваших слов еще понятнее стало.
Еще раз спасибо. smile 
PM MAIL   Вверх
bsa
Дата 17.9.2012, 00:07 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Модератор
Сообщений: 9185
Регистрация: 6.4.2006
Где: Москва, Россия

Репутация: 85
Всего: 196




M
bsa
Jiminik, если ответ на вопрос получен, то пометь тему решенной

PM   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "C/C++: Для новичков"
JackYF
bsa

Запрещается!

1. Публиковать ссылки на вскрытые компоненты

2. Обсуждать взлом компонентов и делиться вскрытыми компонентами

  • Действия модераторов можно обсудить здесь
  • С просьбами о написании курсовой, реферата и т.п. обращаться сюда
  • Вопросы по реализации алгоритмов рассматриваются здесь


Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, JackYF, bsa.

 
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | C/C++: Для новичков | Следующая тема »


 




[ Время генерации скрипта: 0.0716 ]   [ Использовано запросов: 21 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.