0 / 0 / 0
Регистрация: 07.08.2012
Сообщений: 14
1

LNK2019 и LNK1120

02.09.2012, 14:54. Показов 1221. Ответов 2
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Программа состоит из 3ех файлов:
names.h
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
#ifndef NAMES_H_
#define NAMES_H_
namespace SALES
{
    const int QUARTERS = 4;
    struct Sales
    {
        double sales[QUARTERS];
        double average;
        double max;
        double min;
    };
    void SetSales(Sales & s, const double ar[], int n);
    void SetSales(Sales & s);
    void ShowSales(const Sales & s);
}
void Clocks(void);
#endif
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
25
#include <iostream>
#include <Windows.h>
#include "names.h"
using namespace SALES;
 
int main()
{
    SetConsoleCP(1251);
    SetConsoleOutputCP(1251);
 
    std::cout << "Неинтерактивная версия:\n\n";
    double arrMass[4] = {4.3, 2.1, 5.6, 1.7};
    Sales sSALE_A;
    SetSales(sSALE_A, arrMass, 4);
    ShowSales(sSALE_A);
 
    std::cout << "\n\nИнтерактивная версия:\n\n";
    Sales sSALE_B;
    SetSales(sSALE_B);
    ShowSales(sSALE_B);
 
    Clocks();
    std::cin.get();
    return 0;
}
и файла с функциями funcs.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
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
#include <iostream>
#include <ctime>
#include "names.h"
using namespace SALES;
 
void Clocks(void)
{
    float secs = 10;
    clock_t delay = secs * CLOCKS_PER_SEC;
    clock_t start = clock();
    while (clock() - start < delay);
}
void SetSales(Sales & s, const double ar[], int n)
{
    s.max = ar[0];
    s.min = ar[0];
    s.average = 0.0;
    for (int i = 0; i < n; i++)
    {
        s.sales[i] = ar[i];
        if (s.sales[i] >= s.max)
            s.max = s.sales[i];
        if (s.sales[i] <= s.min)
            s.min = s.sales[i];
        s.average += s.sales[i];
    }   
    s.average = s.average / n;      //забивает нулями элементы если пусты (индийская версия)
    if (n != 4)
    {
        s.sales[3] = 0;
        if (n != 3)
            s.sales[2] = 0;
        if (n != 2 && n != 3)
            s.sales[1] = 0;
    }
    //for (int i = 4; i >= n; i--)   //забивает нулями элементы если они пусты.
    //  if (n != i+1)
    //      s.sales[i] = 0;
}
void SetSales(Sales & s)
{
    s.max = s.min = s.average = 0.0;
    double temp;
    int count = 0;
    std::cout << "Вводите продажи (для выхода введите 0.001):\n";
    for (int i = 0; i < 4; i++)
    {
        std::cout << "Введите продажи за " << i+1 << " квартал: ";
        std::cin >> temp;
        if (temp == 0.001)
            break;
        count = i-1;
        s.sales[i] = temp;
        if (s.sales[i] >= s.max)
            s.max = s.sales[i];
        if (s.sales[i] <= s.min)
            s.min = s.sales[i];
        s.average += s.sales[i];
    }   
    s.average = s.average / count;
}
void ShowSales(const Sales & s)
{
    std::cout << "Элементы массива: \n";
    for (int i = 0; i < 4; i++)
        std::cout << "\t" << i+1;
    std::cout << std::endl;
    for (int i = 0; i < 4; i++)
        std::cout << "\t" << s.sales[i];
    std::cout << "\nСреднее значение = " << s.average
              << "\nМаксимальное значение = " << s.max
              << "\nМинимальное значение = " << s.min << std::endl;
    
}
Все это безобразие выдает ошибки:

1>------ Построение начато: проект: Exersize9.4, Конфигурация: Debug Win32 ------
1>Построение начато 02.09.2012 13:41:34.
1>InitializeBuildStatus:
1> Обращение к "Debug\Exersize9.4.unsuccessfulbuild".
1>ClCompile:
1> main.cpp
1>ManifestResourceCompile:
1> Для всех выходных данных обновления не требуется.
1>main.obj : error LNK2019: ссылка на неразрешенный внешний символ "void __cdecl SALES::SetSales(struct SALES::Sales &)" (?SetSales@SALES@@YAXAAUSales@1@@Z) в функции _main
1>main.obj : error LNK2019: ссылка на неразрешенный внешний символ "void __cdecl SALES::ShowSales(struct SALES::Sales const &)" (?ShowSales@SALES@@YAXABUSales@1@@Z) в функции _main
1>main.obj : error LNK2019: ссылка на неразрешенный внешний символ "void __cdecl SALES::SetSales(struct SALES::Sales &,double const * const,int)" (?SetSales@SALES@@YAXAAUSales@1@QBNH@Z) в функции _main
1>D:\+PROJECTS+\Visual Studio\Exersize9.4\Debug\Exersize9.4.exe : fatal error LNK1120: 3 неразрешенных внешних элементов
1>
1>СБОЙ построения.
1>
1>Затраченное время: 00:00:01.40
========== Построение: успешно: 0, с ошибками: 1, без изменений: 0, пропущено: 0 ==========
Полазил по интернетам - везде написано, что проблема в области видимости и что то тп.
С моей точки зрения - все ОК, вроде все должно друг друга "видеть"
Может main.cpp не видит funcs.cpppp ?

Жду помощи, всем заранее спасибо)

PS я изучаю С++ только второй месяц, и еще толком не научился читать ошибки
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
02.09.2012, 14:54
Ответы с готовыми решениями:

LNK1120 и LNK2019
1&gt;------ Сборка начата: проект: Win32Project3, Конфигурация: Debug Win32 ------ 1&gt;stdAfx.cpp...

LNK1120 .LNK2019
помогите пожалуйста . Заранее спасибо LNK1120 неразрешенных внешних элементов :1 LNK2019...

LNK2019 and LNK1120
Помогите пофиксить 2 ошибки. Не могу понять что от меня требуется. Вот код программы: // det.cpp:...

Error LNK2019 и LNK1120
Форумчане, помогите кто чем может. изучать язык только начал, поэтому куча вопросов и ошибок, а...

2
320 / 270 / 128
Регистрация: 24.05.2012
Сообщений: 629
02.09.2012, 16:36 2
Все функции в funcs.cpp должны быть обернуты в namespace SALES.
0
0 / 0 / 0
Регистрация: 07.08.2012
Сообщений: 14
02.09.2012, 16:59  [ТС] 3
Зашел сюда, чтобы написать, что разобрался XD
Но все равно спасибо тебе, добрый человек
Я сначала переписал программу в один файл, чтобы понять, что кто использует и что кому не хватает - и догнал, что именно пространство имен я и забыл в файл с функциями дописать.
Так же нашел проблему, что функция не считает среднее значение, не считает минимум и тп мелочи.
0
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
02.09.2012, 16:59
Помогаю со студенческими работами здесь

WinApi (LNK2019 + LNK1120)
2 проблемы линковщика, как исправить? #include &lt;windows.h&gt; #include &lt;WinUser.h&gt; #include...

WinApi (LNK2019 + LNK1120)
2 проблемы линковщика, как исправить? #include &lt;Windows.h&gt; int CALLBACK winMain(HINSTANCE...

Ошибка LNK2019-LNK1120
#include &quot;pch.h&quot; #include &lt;iostream&gt; using namespace std; class phone { public: int date;...

LNK2019, LNK1120, U1077
Написала простейшую программу и получила ворох ошибок, которые не могу исправить. Помогите,...


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

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

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2023, CyberForum.ru