2014 dxdy logo

Научный форум dxdy

Математика, Физика, Computer Science, Machine Learning, LaTeX, Механика и Техника, Химия,
Биология и Медицина, Экономика и Финансовая Математика, Гуманитарные науки




 
 Компилятор Visual studio c++
Сообщение12.09.2010, 13:51 
Установил VS C++, не компилирует даже пустую страничку:

1>LINK : fatal error LNK1561: точка входа должна быть определена

После того, как задал её в свойствах проекта, стал говорить:

1>MSVCRTD.lib(crtexe.obj) : error LNK2019: ссылка на неразрешенный внешний символ _main в функции ___tmainCRTStartup
LNK1120: 1 неразрешенных внешних элементов

Может кто-нибудь знает, как это исправить? Хочется код уже начать писать.

 
 
 
 Re: Компилятор Visual studio c++
Сообщение12.09.2010, 14:26 
Какой тип проекта Вы выбрали при создании?
У консольного приложения точка входа - функция main(), у приложения Win32 - WinMain(), у динамической библиотеки Win32 - DllMain().

 
 
 
 Re: Компилятор Visual studio c++
Сообщение12.09.2010, 14:55 
Спасибо! Так и знал, что вопрос окажется глупым. Создавал пустой проект.

 
 
 
 Re: Компилятор Visual studio c++
Сообщение07.10.2010, 22:53 
Я новичек в с++, подскажите пожалуйста, я описал описание объекта в заголовочном файле .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)

 
 
 
 Re: Компилятор Visual studio c++
Сообщение07.10.2010, 23:18 
Раздельная компиляция шаблонов (template) поддерживается пренебрежительно малым количеством компиляторов. Так что приходится определения шаблонных функций класть рядом с их описаниями.
Часто методы шаблонных классов кладут прямо в описание класса, иногда в тот же хедер в конце, или в отдельный файл, который включается самим хедером. Так же поступают и с inline функциями.

 
 
 
 Re: Компилятор Visual studio c++
Сообщение07.10.2010, 23:26 
venco спасибо!

 
 
 [ Сообщений: 6 ] 


Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group