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

Подскажите, на что ругается линковщик? - C++

Восстановить пароль Регистрация
 
Vlad1slav
21 / 21 / 5
Регистрация: 16.09.2009
Сообщений: 111
07.04.2012, 00:19     Подскажите, на что ругается линковщик? #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
//test.h
#pragma once
 
#include <vector>
 
using namespace std;
 
class Single {
public:
    static vector<Single*> singles;
    Single() {
        singles.push_back(NULL);
    };
 
};
 
//test.cpp
#include "stdafx.h"
#include "Singletone.h"
 
int _tmain(int argc, _TCHAR* argv[])
{
    Single* s=new Single();
    return 0;
}

Error 2 error LNK1120: 1 unresolved externals C:\...................\Test.exe

Error 1 error LNK2001: unresolved external symbol "public: static class std::vector<class Single *,class std::allocator<class Single *> > Single::singles" (?singles@Single@@2V?$vector@PAVSingle@@V?$allocator@PAVSingle@@@std@@@std@@A) C:\...................\Test.obj

Изначально код был намного больше, всё лишнее убрал и попробывал такой тестовый вариант...

Подскажите, на что ругается линковщик? Что нужно сделать, чтобы эта программа заработала
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
07.04.2012, 00:19     Подскажите, на что ругается линковщик?
Посмотрите здесь:

C++ экспрес ругается на #include "stdafx.h". Что делать?
C++ Обход упорядоченного дерева. Не могу понять на что ругается прогорамма... Ошибок вроде как нет...
C++ почему линковщик не видит статическую переменную:
C++ подскажите что делать при вводимых данных 10 25 и 5 20 программа работает не правильно должна выводить 135 подскажите что делать
C++ компилятор ругается, что для индекса требуется массив или указатель
C++ Линковщик студии суёт нос не туда куда надо
Подскажите пожалуйста,что нужно сделать,что бы отображался русский язык?? C++
Компилятор ругается, не разрешенная внешняя ссылка, что не так? C++

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

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
igorrr37
 Аватар для igorrr37
1593 / 1221 / 118
Регистрация: 21.12.2010
Сообщений: 1,868
Записей в блоге: 7
07.04.2012, 08:36     Подскажите, на что ругается линковщик? #2
статические поля класса или структуры должны быть объявлены (помимо объявления класса) в глобальной (или namespace) области
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
#include <vector>
 
class Single
{
public:
    static std::vector<Single*> singles;
    Single()
    {
        singles.push_back(0);
    }
};
 
std::vector<Single*> Single::singles;
 
int main()
{
    Single* s = new Single();
    return 0;
}
Vlad1slav
21 / 21 / 5
Регистрация: 16.09.2009
Сообщений: 111
07.04.2012, 12:59  [ТС]     Подскажите, на что ругается линковщик? #3
igorrr37Спасибо большое!
Я раньше видимо всегда проводил инициализацию статических полей(её ведь тоже надо проводить в глобальной области), потому с такой ошибкой не сталкивался...
Yandex
Объявления
07.04.2012, 12:59     Подскажите, на что ругается линковщик?
Ответ Создать тему
Опции темы

Текущее время: 20:44. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru