c++ - 未定义对 `WinMain@16 的引用

标签 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() 函数,但我仍然收到此错误。

你知道我该怎么做吗?

最佳答案

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

您可以通过在 g++ 命令行中传递以下参数来指定应用程序的子系统:
-Wl,-subsystem,console
(仅供引用,对于“Windows”子系统,您将使用 -Wl,-subsystem,windows )

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

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

请试一试 :)

关于c++ - 未定义对 `WinMain@16 的引用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20909816/

相关文章:

c++ - std::array<> 是否只保证在堆栈上分配?

c++ - 如何使用 do/while、While 语句或 For 语句查找用户输入的多个整数之和

c++ - OpenCV WarpPerspective 问题

python - Opencv 显示错误的图像宽度和高度

c++ - Eclipse CDT 氧气 : Compiler issue

c++ - 新的 OpenGL 代码编译但没有任何反应?

c++ - 指向 boost 共享指针 vector 的空指针

c++ - Qt 避免循环依赖

java - 使边界框与另一个边界框相等 : Opencv , Android

eclipse cdt 在项目包中看不到头文件?