未定义的引用`WinMain @ 16

时间:2014-01-03 17:55:24

标签: c++ opencv eclipse-cdt

我正在尝试将openCV安装到Eclipse C ++。我安装了Opencv并对路径和lib文件进行了修改,但是我得到了

**** Rebuild of configuration Debug for project test ****

**** Internal Builder is used for build               ****
g++ -IC:\opencv\build\include -O0 -g3 -Wall -c -fmessage-length=0 -osrc\main.o    ..\src\main.cpp
g++ -LC:\opencv\build\x86\vc10\lib -LC:\opencv\build\x86\vc11\lib -otest.exe src\main.o -lopencv_core247 -lopencv_core247d -lopencv_highgui247 -lopencv_highgui247d -lopencv_imgproc247 -lopencv_imgproc247d
C:/MinGW/i686-pc-mingw32/lib/libmingw32.a(lib32_libmingw32_a-crt0_c.o):crt0_c.c:(.text+0x3c): undefined reference to `WinMain@16'
collect2.exe: error: ld returned 1 exit status
Build error occurred, build is stopped

我知道之前已经问过这个问题,但在每一个问题中,答案都是“忘记包含main()函数”。但我有一个main()函数,我仍然得到这个错误。

你知道我该怎么办?

1 个答案:

答案 0 :(得分:0)

链接器可能默认使用“Windows”子系统,这意味着主入口点不是您期望的“主要”符号,而是“WinMain”。

您可以通过在g ++命令行中传递以下参数来指定应用程序的子系统:

-Wl,-subsystem,console

(仅供参考,对于“Windows”子系统,您使用-Wl,-subsystem,windows

您也可以在我相信的链接器配置中的Eclipse项目设置中设置它。

基本上,“控制台”,顾名思义,创建一个基于控制台的应用程序,其默认入口点是主要功能,另一个将创建一个Windows GUI应用程序,其默认入口点是WinMain函数。 / p>

请试一试:)