Форум программистов, компьютерный форум, киберфорум
C++/CLI
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.91/34: Рейтинг темы: голосов - 34, средняя оценка - 4.91
7 / 7 / 0
Регистрация: 13.09.2012
Сообщений: 94

Неочевидные ошибки линковщика

08.12.2016, 22:50. Показов 7051. Ответов 1

Студворк — интернет-сервис помощи студентам
Написал код, попробовал скомпилировать, а в результате получил это:
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
Severity    Code    Description Project File    Line    Suppression State
Error   LNK2022 metadata operation failed (80131188) : Несовместимые объявления полей в повторяющихся типах (типы: cliext.impl.vector_impl<cliext::vector<double> ^,0>; поля: _Myarray): (0x04000010).   Coursework  C:\Users\user\documents\visual studio 2015\Projects\Coursework\Coursework\TestsTimeTree.obj 1   
Error   LNK2022 metadata operation failed (80131188) : Несовместимые объявления полей в повторяющихся типах (типы: cliext.impl.vector_impl<cliext::vector<double> ^,0>; поля: _Mysize): (0x04000011).    Coursework  C:\Users\user\documents\visual studio 2015\Projects\Coursework\Coursework\TestsTimeTree.obj 1   
Error   LNK2022 metadata operation failed (80131188) : Несовместимые объявления полей в повторяющихся типах (типы: cliext.impl.vector_impl<cliext::vector<double> ^,0>; поля: _Mygen): (0x04000012). Coursework  C:\Users\user\documents\visual studio 2015\Projects\Coursework\Coursework\TestsTimeTree.obj 1   
Error   LNK2022 metadata operation failed (801311D7) : Разное количество полей в повторяющихся типах (cliext.impl.vector_impl<cliext::vector<double> ^,0>): (0x0200001e).   Coursework  C:\Users\user\documents\visual studio 2015\Projects\Coursework\Coursework\TestsTimeTree.obj 1   
Error   LNK2022 metadata operation failed (80131188) : Несовместимые объявления полей в повторяющихся типах (типы: cliext.impl.vector_impl<bool,0>; поля: _Myarray): (0x0400001a).   Coursework  C:\Users\user\documents\visual studio 2015\Projects\Coursework\Coursework\TestsTimeTree.obj 1   
Error   LNK2022 metadata operation failed (80131188) : Несовместимые объявления полей в повторяющихся типах (типы: cliext.impl.vector_impl<bool,0>; поля: _Mysize): (0x0400001b).    Coursework  C:\Users\user\documents\visual studio 2015\Projects\Coursework\Coursework\TestsTimeTree.obj 1   
Error   LNK2022 metadata operation failed (80131188) : Несовместимые объявления полей в повторяющихся типах (типы: cliext.impl.vector_impl<bool,0>; поля: _Mygen): (0x0400001c). Coursework  C:\Users\user\documents\visual studio 2015\Projects\Coursework\Coursework\TestsTimeTree.obj 1   
Error   LNK2022 metadata operation failed (801311D7) : Разное количество полей в повторяющихся типах (cliext.impl.vector_impl<bool,0>): (0x0200002a).   Coursework  C:\Users\user\documents\visual studio 2015\Projects\Coursework\Coursework\TestsTimeTree.obj 1   
Error   LNK2022 metadata operation failed (8013118B) : Несовместимые реализованные интерфейсы в повторяющихся типах (типы: cliext.impl.vector_impl<cliext::vector<double> ^,0>; интерфейсы: System.Runtime.CompilerServices.CallConvStdcall): (0x09000001).    Coursework  C:\Users\user\documents\visual studio 2015\Projects\Coursework\Coursework\TestsTimeTree.obj 1   
Error   LNK2022 metadata operation failed (8013118B) : Несовместимые реализованные интерфейсы в повторяющихся типах (типы: cliext.impl.vector_impl<cliext::vector<double> ^,0>; интерфейсы: System.IDisposable): (0x09000002). Coursework  C:\Users\user\documents\visual studio 2015\Projects\Coursework\Coursework\TestsTimeTree.obj 1   
Error   LNK2022 metadata operation failed (8013118B) : Несовместимые реализованные интерфейсы в повторяющихся типах (типы: cliext.impl.vector_base<cliext::vector<double> ^,0>; интерфейсы: System.Runtime.CompilerServices.CallConvFastcall): (0x09000003).   Coursework  C:\Users\user\documents\visual studio 2015\Projects\Coursework\Coursework\TestsTimeTree.obj 1   
Error   LNK2022 metadata operation failed (8013118B) : Несовместимые реализованные интерфейсы в повторяющихся типах (типы: cliext.impl.vector_base<cliext::vector<double> ^,0>; интерфейсы: System.Runtime.CompilerServices.IsVolatile): (0x09000004). Coursework  C:\Users\user\documents\visual studio 2015\Projects\Coursework\Coursework\TestsTimeTree.obj 1   
Error   LNK2022 metadata operation failed (8013118B) : Несовместимые реализованные интерфейсы в повторяющихся типах (типы: cliext.impl.vector_base<cliext::vector<double> ^,0>; интерфейсы: System.Runtime.CompilerServices.SuppressMergeCheckAttribute): (0x09000005).    Coursework  C:\Users\user\documents\visual studio 2015\Projects\Coursework\Coursework\TestsTimeTree.obj 1   
Error   LNK2022 metadata operation failed (8013118B) : Несовместимые реализованные интерфейсы в повторяющихся типах (типы: cliext.impl.vector_impl<bool,0>; интерфейсы: System.Runtime.CompilerServices.IsConst): (0x0900000b).    Coursework  C:\Users\user\documents\visual studio 2015\Projects\Coursework\Coursework\TestsTimeTree.obj 1   
Error   LNK2022 metadata operation failed (8013118B) : Несовместимые реализованные интерфейсы в повторяющихся типах (типы: cliext.impl.vector_impl<bool,0>; интерфейсы: System.IDisposable): (0x0900000c). Coursework  C:\Users\user\documents\visual studio 2015\Projects\Coursework\Coursework\TestsTimeTree.obj 1   
Error   LNK2022 metadata operation failed (8013118B) : Несовместимые реализованные интерфейсы в повторяющихся типах (типы: cliext.impl.vector_base<bool,0>; интерфейсы: System.IDisposable): (0x0900000d). Coursework  C:\Users\user\documents\visual studio 2015\Projects\Coursework\Coursework\TestsTimeTree.obj 1   
Error   LNK2022 metadata operation failed (8013118B) : Несовместимые реализованные интерфейсы в повторяющихся типах (типы: cliext.impl.vector_base<bool,0>; интерфейсы: System.Runtime.CompilerServices.IsLong): (0x0900000e). Coursework  C:\Users\user\documents\visual studio 2015\Projects\Coursework\Coursework\TestsTimeTree.obj 1   
Error   LNK2022 metadata operation failed (8013118B) : Несовместимые реализованные интерфейсы в повторяющихся типах (типы: cliext.impl.vector_base<bool,0>; интерфейсы: System.Runtime.InteropServices.MarshalAsAttribute): (0x0900000f)Coursework  C:\Users\user\documents\visual studio 2015\Projects\Coursework\Coursework\TestsTimeTree.obj 1   
Error   LNK2022 metadata operation failed (8013118D) : Несовместимые сведения о макетах в повторяющихся типах (cliext._Dehandle<cliext::vector<double> ^>): (0x0200001c).   Coursework  C:\Users\user\documents\visual studio 2015\Projects\Coursework\Coursework\TestsTimeTree.obj 1   
Error   LNK2022 metadata operation failed (8013118D) : Несовместимые сведения о макетах в повторяющихся типах (cliext.is_handle<cliext::vector<double> ^>): (0x0200001d).   Coursework  C:\Users\user\documents\visual studio 2015\Projects\Coursework\Coursework\TestsTimeTree.obj 1   
Error   LNK2022 metadata operation failed (8013118D) : Несовместимые сведения о макетах в повторяющихся типах (cliext._Dehandle<bool>): (0x02000028).   Coursework  C:\Users\user\documents\visual studio 2015\Projects\Coursework\Coursework\TestsTimeTree.obj 1   
Error   LNK2022 metadata operation failed (8013118D) : Несовместимые сведения о макетах в повторяющихся типах (cliext.is_handle<bool>): (0x02000029).   Coursework  C:\Users\user\documents\visual studio 2015\Projects\Coursework\Coursework\TestsTimeTree.obj 1   
Error   LNK2022 metadata operation failed (80131195) : Несовместимые особые атрибуты. (0x0c000016)Coursework  C:\Users\user\documents\visual studio 2015\Projects\Coursework\Coursework\TestsTimeTree.obj 1   
Error   LNK2022 metadata operation failed (80131195) : Несовместимые особые атрибуты. (0x0c000018)Coursework  C:\Users\user\documents\visual studio 2015\Projects\Coursework\Coursework\TestsTimeTree.obj 1   
Error   LNK2022 metadata operation failed (80131195) : Несовместимые особые атрибуты. (0x0c00001a)Coursework  C:\Users\user\documents\visual studio 2015\Projects\Coursework\Coursework\TestsTimeTree.obj 1   
Error   LNK2022 metadata operation failed (80131195) : Несовместимые особые атрибуты. (0x0c000029)Coursework  C:\Users\user\documents\visual studio 2015\Projects\Coursework\Coursework\TestsTimeTree.obj 1   
Error   LNK2022 metadata operation failed (80131195) : Несовместимые особые атрибуты. (0x0c00002c)Coursework  C:\Users\user\documents\visual studio 2015\Projects\Coursework\Coursework\TestsTimeTree.obj 1   
Error   LNK2022 metadata operation failed (80131195) : Несовместимые особые атрибуты. (0x0c00002e)Coursework  C:\Users\user\documents\visual studio 2015\Projects\Coursework\Coursework\TestsTimeTree.obj 1   
Error   LNK1255 link failed because of metadata errors  Coursework  C:\Users\user\documents\visual studio 2015\Projects\Coursework\Coursework\LINK  1
Есть пара подозрений касаемо того, на что ругается линковщик. Вот их список:

C++
1
2
cliext::vector<cliext::vector<System::Double>^> ^ testTimeVector = gcnew cliext::vector<cliext::vector<System::Double> ^>();
testTimeVector[index]->at(i);
Что подскажете?
Если этого мало, то вот код класса, на который ругается линковщик:
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
//testTimeVector.h
#ifndef _TESTSTIMETREE
#define _TESTSTIMETREE
 
 
#include <cliext\vector>
 
#include "LinearEquationsSystem.h"
 
ref class TestsTimeTree
{
public:
    TestsTimeTree();
    System::Void PushTime(System::UInt32 size, System::Double time);
    cliext::vector<System::Double> ^ GetLSMTimesVector();
private:
    System::Void CheckLSMVector(System::Void);
    System::Void CalcLSM(System::UInt32 index);
    System::Void CalcCoefficients(System::UInt32 index);
 
    cliext::vector<cliext::vector<System::Double>^> ^ testTimeVector;
    cliext::vector<System::Double> ^ leastSquareMethodTimesVector;
    cliext::vector<System::Boolean> ^ isTimeChanged;
 
    System::UInt32 numOfTests;
 
    System::UInt64 summOfX;
    System::UInt64 summOfPowX;
 
    System::Double summOfY;
    System::Double summOfYX;
 
    System::Double a0;
    System::Double a1;
 
};
 
#endif // !_TESTSTIMETREE
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
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
//TestsTimeTree.cpp
#include "TestsTimeTree.h"
 
 
 
TestsTimeTree::TestsTimeTree()
{
    testTimeVector               = gcnew cliext::vector<cliext::vector<System::Double> ^>();
    leastSquareMethodTimesVector = gcnew cliext::vector<System::Double>();
    isTimeChanged                = gcnew cliext::vector<System::Boolean>();
 
    numOfTests = 0u;
 
    summOfX    = 0.0;
    summOfPowX = 0.0;
    summOfY    = 0.0;
    summOfYX   = 0.0;
}
 
System::Void TestsTimeTree::PushTime(System::UInt32 size, System::Double time)
{
    // If current expected size of task is smaller then the task size
    // than resize expected size of task
    size++;
    if (testTimeVector->size() < size) {
        System::Int32 oldSize = testTimeVector->size();
        testTimeVector->resize(size);
        leastSquareMethodTimesVector->resize(size);
        isTimeChanged->resize(size);
        for (size_t i = oldSize; i < size; i++) {
            testTimeVector[i] = gcnew cliext::vector<System::Double>();
            isTimeChanged[i] = false;
            leastSquareMethodTimesVector[i] = 0.0;
        }
    }
    size--;
 
    // Push our time
    testTimeVector[size]->push_back(time);
    isTimeChanged[size] = true;
    numOfTests++;
 
    CalcCoefficients(size);
 
    //----
    CheckLSMVector();
 
    CalcLSM(size);
 
    return System::Void();
}
 
cliext::vector<System::Double>^ TestsTimeTree::GetLSMTimesVector()
{
    return gcnew cliext::vector<System::Double>(leastSquareMethodTimesVector);
}
 
System::Void TestsTimeTree::CheckLSMVector(System::Void)
{
    for (size_t i = 0; i < testTimeVector->size(); i++) {
        if (isTimeChanged[i]) {
            CalcLSM(i);
        }
    }
    return System::Void();
}
 
System::Void TestsTimeTree::CalcLSM(System::UInt32 index)
{
    System::Double result = System::Double::MaxValue;
    System::Int32 minIdx = 0;
    for (size_t i = 1; i < testTimeVector[index]->size(); i++) {
        if (System::Math::Pow(testTimeVector[index]->at(i) - a0 - a1 * index, 2.0) <
            System::Math::Pow(testTimeVector[index]->at(minIdx) - a0 - a1 * index, 2.0)) {
            minIdx = i;
        }
    }
    leastSquareMethodTimesVector[index] = testTimeVector[index]->at(minIdx);
    return System::Void();
}
 
System::Void TestsTimeTree::CalcCoefficients(System::UInt32 index)
{
    summOfX += index;
    System::Double y = testTimeVector[index]->at(testTimeVector[index]->size() - 1);
    summOfY += y;
    summOfPowX += System::Math::Pow(index, 2.0);
    summOfYX += y*index;
    
    array<System::Double, 2> ^ inputMatrix = gcnew array<System::Double, 2>(2, 3){{numOfTests, summOfX,    summOfY },
                                                                                  {summOfX,    summOfPowX, summOfYX}};
    LinearEquationsSystem linearEquationSystem(inputMatrix, 2);
 
    cliext::vector<System::Double> ^ resultCoefficients = linearEquationSystem.Calculate(0.0000001);
 
    a0 = resultCoefficients[0];
    a1 = resultCoefficients[1];
 
    return System::Void();
}
p.s. Студия 2015, .NET v4.5.2
0
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
08.12.2016, 22:50
Ответы с готовыми решениями:

Ошибки линковщика
Windows XP MS Visual Studio 2005 Приветствую! Начал разбираться с подключением dll к проекту, и сразу наткнулся на несколько...

Ошибки линковщика
Люди добрые, подскажите, как быть или дайте ссылку на статью о том, как работает линковщик.. Есть один главный хэдер, подключащий всё...

Странные ошибки линковщика Qt
Имеется класс главного окна MainWindow #ifndef MAINWINDOW_H #define MAINWINDOW_H #include &lt;QPushButton&gt; #include &lt;QTableView&gt;...

1
0 / 0 / 0
Регистрация: 10.06.2021
Сообщений: 3
17.06.2021, 22:22
У меня та же самая проблема
Могу сказать только причину - почему-то ему не нравятся методы с вектором в параметрах
Если заменить на, допустим, ArrayList (или любой другой список) должен перестать ругаться
А как реализовать вектором, к сожалению, не подскажу, сам мучаюсь :\
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
17.06.2021, 22:22
Помогаю со студенческими работами здесь

Непонятные ошибки линковщика
В общем пытаюсь прикрутить работу с пост запросами но появляются ошибки не могу понять как всё это исправить

Ошибки линковщика при сборке
Делал по примеру, а нифига не работает... Вот код: funcs.cpp #include &quot;lagrange.h&quot; void lagrange_start() { lagrange first; ...

Ошибки линковщика в учебном примере OpenGL
Здравствуйте. Пытаюсь освоить OpenGL на Qt'е. Не получается запустить учебный пример. Выдает 20 ошибок типа &quot;неразрешенный внешний...

Ошибки линковщика при использовании сокетов
Доброго времени суток! При попытки скомпилировать код, линковшик выдает ошибки. Хотелось бы узнать: Почему и как это убрать? Код: ...

Моделирование океана - ошибки линковщика при компиляции
Набрал огромный код из книги &quot;C++ изнутри&quot;, при компиляции получаю: Как исправить? Проект VS: http://rghost.ru/41456754


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

Или воспользуйтесь поиском по форуму:
2
Ответ Создать тему
Новые блоги и статьи
PhpStorm 2025.3: WSL Terminal всегда стартует в ~
and_y87 14.12.2025
PhpStorm 2025. 3: WSL Terminal всегда стартует в ~ (home), игнорируя директорию проекта Симптом: После обновления до PhpStorm 2025. 3 встроенный терминал WSL открывается в домашней директории. . .
Как объединить две одинаковые БД Access с разными данными
VikBal 11.12.2025
Помогите пожалуйста !! Как объединить 2 одинаковые БД Access с разными данными.
Новый ноутбук
volvo 07.12.2025
Всем привет. По скидке в "черную пятницу" взял себе новый ноутбук Lenovo ThinkBook 16 G7 на Амазоне: Ryzen 5 7533HS 64 Gb DDR5 1Tb NVMe 16" Full HD Display Win11 Pro
Музыка, написанная Искусственным Интеллектом
volvo 04.12.2025
Всем привет. Некоторое время назад меня заинтересовало, что уже умеет ИИ в плане написания музыки для песен, и, собственно, исполнения этих самых песен. Стихов у нас много, уже вышли 4 книги, еще 3. . .
От async/await к виртуальным потокам в Python
IndentationError 23.11.2025
Армин Ронахер поставил под сомнение async/ await. Создатель Flask заявляет: цветные функции - провал, виртуальные потоки - решение. Не threading-динозавры, а новое поколение лёгких потоков. Откат?. . .
Поиск "дружественных имён" СОМ портов
Argus19 22.11.2025
Поиск "дружественных имён" СОМ портов На странице: https:/ / norseev. ru/ 2018/ 01/ 04/ comportlist_windows/ нашёл схожую тему. Там приведён код на С++, который показывает только имена СОМ портов, типа,. . .
Сколько Государство потратило денег на меня, обеспечивая инсулином.
Programma_Boinc 20.11.2025
Сколько Государство потратило денег на меня, обеспечивая инсулином. Вот решила сделать интересный приблизительный подсчет, сколько государство потратило на меня денег на покупку инсулинов. . . .
Ломающие изменения в C#.NStar Alpha
Etyuhibosecyu 20.11.2025
Уже можно не только тестировать, но и пользоваться C#. NStar - писать оконные приложения, содержащие надписи, кнопки, текстовые поля и даже изображения, например, моя игра "Три в ряд" написана на этом. . .
Мысли в слух
kumehtar 18.11.2025
Кстати, совсем недавно имел разговор на тему медитаций с людьми. И обнаружил, что они вообще не понимают что такое медитация и зачем она нужна. Самые базовые вещи. Для них это - когда просто люди. . .
Создание Single Page Application на фреймах
krapotkin 16.11.2025
Статья исключительно для начинающих. Подходы оригинальностью не блещут. В век Веб все очень привыкли к дизайну Single-Page-Application . Быстренько разберем подход "на фреймах". Мы делаем одну. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2025, CyberForum.ru