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

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

Войти
Регистрация
Восстановить пароль
 
 
Рейтинг: Рейтинг темы: голосов - 16, средняя оценка - 4.63
Aliru777
1 / 1 / 0
Регистрация: 03.11.2011
Сообщений: 71
#1

Раздельная компиляция ошибка LNK2019 - C++

14.08.2012, 15:54. Просмотров 2010. Ответов 45
Метки нет (Все метки)

Создал Header file
C++
1
2
3
4
5
6
7
8
9
10
11
#ifndef prata_9_1_H_
#define prata_9_1_H_
struct XY
{
int i_x; // distance from origin
int i_y; // direction from origin
};
 
void show_XY(XY);
 
#endif
основной файл с main
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
#include "stdafx.h"
#include "iostream"
#include <string>
#include <conio.h>
#include <ctype.h>
#include "prata _9_1_ex.h"
 
using namespace std;
 
int _tmain(int argc, _TCHAR* argv[])
{
    XY xy_1;
    while (cin>>xy_1.i_x>>xy_1.i_y)
    {
        show_XY(xy_1);
        cout<<"Enter next 2 values or Q for quit\n";
    }
    getch();
    return 0;
}
и файл с описанием функции
C++
1
2
3
4
5
6
7
8
9
10
#include "stdafx.h"
#include "iostream"
#include "prata _9_1_ex.h"
 
using namespace std;
 
void show_XY(xy)
{
    cout<<xy.i_x<<"\t"<<xy.i_y<<"\n";
}
Пишет:
Error 1 error LNK2019: unresolved external symbol "void __cdecl show_XY(struct XY)" (?show_XY@@YAXUXY@@@Z) referenced in function _wmain prata 9 include.obj
Error 2 fatal error LNK1120: 1 unresolved externals C:\Users\Наталья\Documents\Visual Studio 2005\Projects\prata 9 include\Debug\prata 9 include.exe

Не пойму в чем проблема.
0
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
14.08.2012, 15:54
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Раздельная компиляция ошибка LNK2019 (C++):

Раздельная компиляция - C++
Здравствуйте, я перечитал на форуме информацию по этой теме, но пока что не сумел разобраться. У меня в проекте такие файлы: ...

Раздельная компиляция - C++
В Гугле не забанен,нашел описание самого принципа,но конкретных примеров не нашел. Вопросы вот какие: 1) Если у меня есть класс,...

раздельная компиляция - C++
Вот есть три файла: заголовочный файл с классом (.h), файл с реализацией методов класса (.cpp), и функцию main. Как, корректно, выполнить...

Раздельная компиляция - C++
Пусть есть программа, которая состоит из 2 файлов. 1 файл: основной, там где main 2 файл: содержит некоторые функции Также есть...

Раздельная компиляция файлов - C++
Если класс определен в раздельных файлах и изменения сделаны в части main программы, кот использует класс - какой файл необходимо...

Раздельная компиляция и шаблоны - C++
Есть 3 файла с кодом: 1) foo.hpp template&lt;typename T&gt; class foo { public: T bar; foo(); ~foo(); };

Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
nexen
187 / 180 / 3
Регистрация: 27.01.2012
Сообщений: 1,335
14.08.2012, 16:05 #2
Aliru777,
C++
1
2
3
4
void show_XY(xy)
{
    cout<<xy.i_x<<"\t"<<xy.i_y<<"\n";
}
Параметр xy, а его тип?
Должно быть (как я понял) :
C++
1
void show_XY(XY xy)
1
Aliru777
1 / 1 / 0
Регистрация: 03.11.2011
Сообщений: 71
14.08.2012, 16:10  [ТС] #3
Да, это пропустил но ошибки все равно на месте
Там где описание функции такое пишет:
Error 1 error LNK2019: unresolved external symbol _main referenced in function ___tmainCRTStartup MSVCRTD.lib
0
nexen
187 / 180 / 3
Регистрация: 27.01.2012
Сообщений: 1,335
14.08.2012, 16:17 #4
Aliru777,
попробуй ещё
#include <tchar.h>
Мне помнится, что tmain-функция там лежит, но не уверен

Так же вопрос в том, где описана функция show? Ато я не вижу в include'ах что-то, что могло бы говорить о том, что она подключена?
0
Aliru777
1 / 1 / 0
Регистрация: 03.11.2011
Сообщений: 71
14.08.2012, 17:10  [ТС] #5
Цитата Сообщение от nexen Посмотреть сообщение
Так же вопрос в том, где описана функция show? Ато я не вижу в include'ах что-то, что могло бы говорить о том, что она подключена?
А как это сделать?
0
alsav22
5420 / 4816 / 442
Регистрация: 04.06.2011
Сообщений: 13,587
14.08.2012, 18:46 #6
Файл с описанием функции .cpp?
0
Aliru777
1 / 1 / 0
Регистрация: 03.11.2011
Сообщений: 71
14.08.2012, 18:48  [ТС] #7
в смысле?
0
Avazart
Эксперт С++
7191 / 5365 / 280
Регистрация: 10.12.2010
Сообщений: 23,673
Записей в блоге: 17
14.08.2012, 18:48 #8
http://msdn.microsoft.com/ru-ru/library/799kze2z.aspx
1
alsav22
5420 / 4816 / 442
Регистрация: 04.06.2011
Сообщений: 13,587
14.08.2012, 19:01 #9
Цитата Сообщение от Aliru777 Посмотреть сообщение
в смысле?
В проекте, файл с реализацией функции show_XY(), какое расширение имеет? Среда какая? #include <tchar.h> сделали?
0
KeyGen
384 / 291 / 6
Регистрация: 07.08.2011
Сообщений: 789
Записей в блоге: 1
14.08.2012, 19:22 #10
1
C++
1
#include "prata _9_1_ex.h"
- пробел убери
2 Каждая программа должна содержать обязательно функцию main
3 Зачем столько подключенных библиотек? Тут вроде хватит #include <iostream>
4 Не используй using namespace std; , а если пишешь то зачем в каждом файле? Пиши в Header file
0
zss
Модератор
Эксперт С++
6382 / 5947 / 1927
Регистрация: 18.12.2011
Сообщений: 15,264
Завершенные тесты: 1
14.08.2012, 19:25 #11
А Вы точно оба файла (с main и с функцией)подключили к проекту?
0
kazak
3035 / 2356 / 155
Регистрация: 11.03.2009
Сообщений: 5,402
Завершенные тесты: 1
14.08.2012, 19:27 #12
Aliru777, файл с описанием функции в проект добавлен?
0
KeyGen
384 / 291 / 6
Регистрация: 07.08.2011
Сообщений: 789
Записей в блоге: 1
14.08.2012, 20:03 #13
prata_9_1_ex.h
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
#ifndef PRATA_9_1_EX_H_INCLUDED
#define PRATA_9_1_EX_H_INCLUDED
 
using namespace std;
 
struct XY
{
 
    int i_x; // distance from origin
    int i_y; // direction from origin
 
};
 
void show_XY(XY);
 
#endif // PRATA_9_1_EX_H_INCLUDED
prata_9_1_ex.cpp
C++
1
2
3
4
5
6
#include "prata_9_1_ex.h"
 
void show_XY(XY xy)
{
    std::cout << xy.i_x << "\t" << xy.i_y<<"\n";
}
main
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
#include <iostream>
#include "prata_9_1_ex.h"
#include "prata_9_1_ex.cpp"
 
int main()
{
    XY xy_1;
 
    while (cin >> xy_1.i_x >> xy_1.i_y)
    {
 
        show_XY(xy_1);
 
        cout<<"Enter next 2 values or Q for quit\n";
    }
 
    // system("pause");
    return 0;
}
Заработала! ))
1
alsav22
5420 / 4816 / 442
Регистрация: 04.06.2011
Сообщений: 13,587
14.08.2012, 20:34 #14
Цитата Сообщение от KeyGen Посмотреть сообщение
#include "prata_9_1_ex.cpp"
Это-то зачем?

Добавлено через 14 минут
Компилятор mingv. Без этого:
C++
1
#include <iostream>
в файле prata_9_1_ex.cpp или prata_9_1_ex.h, не определяется cout в файле prata_9_1_ex.cpp. С этим :
C++
1
#include "prata_9_1_ex.cpp"
, множественное определение функции show_XY().
0
KeyGen
384 / 291 / 6
Регистрация: 07.08.2011
Сообщений: 789
Записей в блоге: 1
14.08.2012, 20:36 #15
Цитата Сообщение от alsav22 Посмотреть сообщение
Цитата Сообщение от KeyGen Посмотреть сообщение
#include "prata_9_1_ex.cpp"
Это-то зачем?
Без него не пашет. А с ним:
0
Миниатюры
Раздельная компиляция ошибка LNK2019  
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
14.08.2012, 20:36
Привет! Вот еще темы с ответами:

Шаблоны и раздельная компиляция - C++
Здравствуйте! Если просто я пишу класс, например: class Test { private: int *pm; ... public: bool inc();

Раздельная компиляция ( Code blocks) - C++
версия 16.01 при вызове функции из другого файла, стал писать, что я не указал прототип функции и &quot;ld returned 1 exit status&quot;. хотя делал...

Раздельная компиляция шаблонов классов - C++
При разделении шаблона класса на .h и .cpp линковщик ругается. Неужели в C++17 ещё не пофиксили это недоразумение и придётся писать всё в...

Создание классов в С++. Раздельная компиляция - C++
При создании класса C++ в VS создается два файла, &quot;&lt;имя_класса&gt;.h&quot; и &quot;&lt;имя_класса&gt;.cpp&quot;, зачем они ? В каком сам класс писать? Простите за...


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

Или воспользуйтесь поиском по форуму:
Yandex
Объявления
14.08.2012, 20:36
Ответ Создать тему
Опции темы

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