C программой в Visual Studio - PullRequest
       0

C программой в Visual Studio

0 голосов
/ 22 декабря 2010

Я новичок в Visual Studio. Я пытаюсь запустить Hello World, но получаю несколько ошибок и не могу понять, в чем проблема. Я набрал:

#include<stdio.h>

main()
{
    printf("Hello World");


}

в файл кода с расширением .c. Я получаю это:

Error   1   error LNK2019: unresolved external symbol _main referenced in function ___tmainCRTStartup   
d:\Users\...\MSVCRTD.lib(crtexe.obj)    Project

Error   2   error LNK1120: 1 unresolved externals   
d:\users\...Project.exe 1   1   Project

Кто-нибудь знает, в чем проблема? Спасибо.

Ответы [ 2 ]

1 голос
/ 22 декабря 2010

Он компилируется нормально ... вам нужно установить его для компиляции в виде кода C:

Project-> Properties-> Advanced-> Compile As C Code (флаг / TC)

#include<stdio.h>

main()
{
    printf("Hello World");


}

Выход:

1>------ Build started: Project: main,
Configuration: Debug Win32 ------
========== Build: 1 succeeded, 0 failed, 0 up-to-date, 0 skipped
==========

Причина:

Вы компилируете как код C и, следовательно, int по умолчанию не предполагается в коде C ++

Обновление:

Как упоминалось Michael Burr ваш код должен использовать расширение *.c. Однако он все равно скомпилирует файлы cpp как код c, если вы установите свойства проекта. Однако, если не задано никаких настроек, будут скомпилированы настройки по умолчанию (*.c -> c code) и (*.cpp -> cpp code).

Скомпилировано как C код с CPP расширение (успешно)

1>------ Build started: Project: main, Configuration: Debug Win32 ------
1>  main.cpp
1>  main.vcxproj -> c:\users\shane\documents\visual studio 2010\Projects\main\Debug\main.exe
========== Build: 1 succeeded, 0 failed, 0 up-to-date, 0 skipped ==========

Скомпилировано как CPP код с C Расширение (ошибка)

1>------ Build started: Project: main, Configuration: Debug Win32 ------
1>  main.c
1>c:\users\shane\documents\visual studio 2010\projects\main\main\main.c(4): error C4430: missing type specifier - int assumed. Note: C++ does not support default-int
========== Build: 0 succeeded, 1 failed, 0 up-to-date, 0 skipped ==========
1 голос
/ 22 декабря 2010

Есть две основные проблемы с предоставленным кодом.Во-первых, вы не добавили заголовок для включения после слова «включить».Попробуйте вместо этого:

#include <stdio.h>

Во-вторых, main требуется тип возвращаемого значения.Попробуйте:

int main()
{
   printf("Hello World");

   return 0;
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...