错误LNK2019和LNK1120(Visual Studio 2008)

时间:2014-09-16 18:41:30

标签: c visual-studio-2008

项目: 03 - Criacao de funcoes e estruturas de decisao
档案 Criacao de funcoes e estruturas de decisao.cpp

include <iostream>
include <stdlib.h>
include <stdio.h>  

using namespace std;  

int soma(int a, int b) {
    return a+b;  
}

void mensagem() {
    printf ("Hello World!");
    printf ("soma: %d", soma(10,20));
}

错误:

  

错误1 03 - Criacao de funcoes e estruturas de decisao错误LNK2019:未解析的外部符号_main在函数___tmainCRTStartup中引用MSVCRTD.lib
  错误2 03 - Criacao de funcoes e estruturas de decisao致命错误LNK1120:1个未解析的外部C:\ Users \ geovani.moura \ Desktop \ c ++ \ Debug \ 03 - Criacao de funcoes e estruturas de decisao.exe

因为给出了这个错误?

1 个答案:

答案 0 :(得分:0)

通常,每个 C 程序必须使用外部链接定义main()一次。

你错过了main()

如果您的预定入口点为void mensagem(),则应在main()内拨打此号码。 [虽然有办法定义另一个入口点,但它们是非标准的和/或非便携式的 - 只需坚持main()]

一个简单的例子是:

int main()
{
    mensagem();
    return EXIT_SUCCESS;
}

int main( int argc, char* argv[] )
{
    mensagem();
    return EXIT_SUCCESS;
}

注意:在此代码的上下文中,应在您创建的两个函数之后列出main()。要改变函数的顺序,一种可能性是在所有函数之前声明原型。另外,EXIT_SUCCESSstdlib.h中定义的,代码中包含了stdlib.h

没有EXIT_SUCCESSint main() { mensagem(); return 0; }

<stdio.h>

SIDE注意:您正在混合 C / C ++ 标头。 printf()是你想要的'\n'。此外,您可能会发现输出未按预期格式化。您可以使用{{1}}(换行符)字符输出新行。