Ven0m104 |
Компилятор Visual studio c++ 12.09.2010, 13:51 |
|
22/10/09 61
|
Установил VS C++, не компилирует даже пустую страничку:
1>LINK : fatal error LNK1561: точка входа должна быть определена
После того, как задал её в свойствах проекта, стал говорить:
1>MSVCRTD.lib(crtexe.obj) : error LNK2019: ссылка на неразрешенный внешний символ _main в функции ___tmainCRTStartup LNK1120: 1 неразрешенных внешних элементов
Может кто-нибудь знает, как это исправить? Хочется код уже начать писать.
|
|
|
|
|
lim0n |
Re: Компилятор Visual studio c++ 12.09.2010, 14:26 |
|
16/06/10 199
|
Какой тип проекта Вы выбрали при создании? У консольного приложения точка входа - функция main(), у приложения Win32 - WinMain(), у динамической библиотеки Win32 - DllMain().
|
|
|
|
|
Ven0m104 |
Re: Компилятор Visual studio c++ 12.09.2010, 14:55 |
|
22/10/09 61
|
Спасибо! Так и знал, что вопрос окажется глупым. Создавал пустой проект.
|
|
|
|
|
gambit |
Re: Компилятор Visual studio c++ 07.10.2010, 22:53 |
|
07/10/10 2
|
Я новичек в с++, подскажите пожалуйста, я описал описание объекта в заголовочном файле .h и создал файл .срр в котором описал процедуры этого объекта. В главном файле директивой include подключил заголовочный файл. Когда запускаю компилятор, то он не может связать описанные функции в заголовочном файле с описанием в файле срр. Что я не так делаю непонимаю??? Когда же я в главном файле директивой include подключаю файл срр то все компилируется без ошибок. Как же мне подключать заголовочные файлы объектов написаные мною и что бы линкер все связывал???
Вот содержимое файла .h: #ifndef NRNARRAY_H #define NRNARRAY_H
template <class T> class CNrnArray { public: CNrnArray( void ); ~CNrnArray( void ); private: int iSize; T* pArr; };
#endif NRNARRAY_H
И содержимое файла .срр: #include "stdafx.h" #include "NrnArray.h"
#ifndef NRNARRAY_CPP #define NRNARRAY_CPP
template <class T> CNrnArray<T>::CNrnArray( void ) { iSize = 0; pArr = 0; }
template <class T> CNrnArray<T>::~CNrnArray( void ) { if pArr <> 0 { iSize = 0; delete [] pArr; } }
#endif NRNARRAY_CPP
А это 2 ошибки, которые выдает компилятор: NeuronDlg.obj : error LNK2019: unresolved external symbol "public: __thiscall CNrnArray<int>::~CNrnArray<int>(void)" (??1?$CNrnArray@H@@QAE@XZ) referenced in function "public: void __thiscall CNeuronDlg::OnBnClickedOk(void)" (?OnBnClickedOk@CNeuronDlg@@QAEXXZ)
NeuronDlg.obj : error LNK2019: unresolved external symbol "public: __thiscall CNrnArray<int>::CNrnArray<int>(void)" (??0?$CNrnArray@H@@QAE@XZ) referenced in function "public: void __thiscall CNeuronDlg::OnBnClickedOk(void)" (?OnBnClickedOk@CNeuronDlg@@QAEXXZ)
|
|
|
|
|
venco |
Re: Компилятор Visual studio c++ 07.10.2010, 23:18 |
|
Заслуженный участник |
|
04/05/09 4593
|
Раздельная компиляция шаблонов (template) поддерживается пренебрежительно малым количеством компиляторов. Так что приходится определения шаблонных функций класть рядом с их описаниями. Часто методы шаблонных классов кладут прямо в описание класса, иногда в тот же хедер в конце, или в отдельный файл, который включается самим хедером. Так же поступают и с inline функциями.
|
|
|
|
|
gambit |
Re: Компилятор Visual studio c++ 07.10.2010, 23:26 |
|
07/10/10 2
|
|
|
|
|
|
Страница 1 из 1
|
[ Сообщений: 6 ] |
|
Модераторы: Karan, Toucan, PAV, maxal, Супермодераторы