Я пытаюсь установить openCV в Eclipse C++. Я установил Opencv и применил файлы paths и 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", а это означает, что главная точка входа не является "основным" символом, как вы ожидаете, а скорее "WinMain".
Вы можете указать подсистему своего приложения, передав следующий аргумент в вашей g++ командной строке:
-Wl,-subsystem,console
(FYI, для подсистемы "Windows" вы должны использовать -Wl,-subsystem,windows
)
Вы также можете установить это в настройках проекта Eclipse в конфигурации компоновщика, где бы я ни думал.
В основном "консоль", как следует из названия, создает приложение на основе консоли, чья начальная точка входа по умолчанию является основной функцией, а другая создаст приложение графического интерфейса Windows, чья начальная точка входа по умолчанию - это функция WinMain.
Пожалуйста, попробуйте :)