2010-07-16 1 views
0

Я установил eclipse, cdt и mingw на машину Windows XP. добавлено C:\MinGW\bin в мою ПУТЬ.eclipse + cdt + mingw + windows error "undefined reference to` WinMain @ 16 '"on build

Создал новый проект C++ с одним файлом в нем, test.c. код в нем:

int main(){ 
    int i=1; 
} 

Попытка построить, я получаю ошибку: /mingw/lib/libmingw32.a(main.o):main.c:(.text+0xd2): undefined reference to '[email protected]'

Обратите внимание, что не жалуется на test.c, а о некоторых main.c в одном из LIBS MinGW в.

Что я делаю неправильно?

+0

У вас есть командная строка, которая используется для вызова компилятора? Ваша проблема, похоже, является связующим звеном, а не компиляцией. (Возможно, вам не хватает ссылки на 'libmsvcrt.a') –

+0

@Mark - спасибо, я не заметил, что команды компиляции и связывания пытаются скомпилировать другой файл, отличный от того, который содержит основной файл – olamundo

ответ

1

ну, решение было действительно странно, но я думаю, что было бы разумно, чтобы кто-то более опытный с CDT, чем я - My main() был внутри .c файла. Когда я изменил суффикс как .cpp, он работал как шарм.

+1

Возможно, поскольку вы создали «C++ Project» CDT не рассматривал его .c-файл. –

+0

Произошла полная противоположность: my main() был внутри .cpp-файла, а проект был «C-проектом», поэтому CDT не рассматривал файл .cpp. – FlorianT

0

main.o от libmingw32.a не следует искать компоновщиком, потому что неопределенный символ _main из crt2.o (должен быть) удовлетворен «int main()», который вы написали.

Скопируйте & вставьте строки команд gcc, выполняемые cdt.

3

Прежде всего, необходимо сохранить файл .c.