簡體   English   中英

在C ++應用程序中使用Code :: Blocks對WinMain @ 16的未定義引用

[英]undefined reference to `WinMain@16' in C++ app, with Code::Blocks

我只是制作了一個小程序來測試Java和C ++繼承之間的某些差異。 它可以編譯,但是鏈接時出現問題:

mingw32-g++.exe  -o bin\Release\Tests2.exe obj\Release\Exec.o   -s -lmingw32  
c:/program files/codeblocks/mingw/bin/../lib/gcc/mingw32/4.7.1/../../../libmingw32.a(main.o):main.c:(.text.startup+0xa7): undefined reference to `WinMain@16'
collect2.exe: error: ld returned 1 exit status
Process terminated with status 1 (0 minutes, 0 seconds)
1 errors, 0 warnings (0 minutes, 0 seconds)

我不知道它從哪里來。 我正在編譯一個控制台應用程序,而不是一個GUI應用程序,而且我的主要方法格式正確:

class Exec{

public:
    int main( int argc, const char* argv[] ){
        Operation* op1=new Operation("add");
        Operation* op2=new Operation("rest");
    MyExtend* ext=new MyExtend(6,4, op1);
    MyExtend* ext2=new MyExtend(6,4, op2);
    cout << ext->getSum()->getValue() << endl;
    cout << ext2->getRest()->getValue() << endl;
    return 0;
}

};

我嘗試添加-lmingw32,但是它也不起作用(無論如何也不應添加)。 我找到的所有答案都參考了GUI和主要問題,但事實並非如此。 有任何想法嗎?

祝一切順利。

在C ++中,主要功能是程序的入口,應單獨編寫而不是在類中編寫。

Java和cplusplus的最大區別是您必須自己編寫程序條目,並且還必須是c兼容的,所以main是必需的,winmain是Windows特殊的,請檢查您的鏈接標志是否有Windows子系統鏈接標志,將其更改為控制台,那就可以了。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM