SDL с Qtcrator

Я использовал qtcreator для консольного приложения. Теперь я хочу использовать его с SDL1, потому что у меня есть учебник по SDL1, и я хочу изучить SDL на qtcreator, но кажется, что у qtcreator есть 2 варианта: первое консольное приложение, второй интерфейс и оконное приложение, использующее qt. Так могу ли я использовать окно, созданное с помощью SDL. Я провел те же исследования и добавил библиотеку SDL в qmake, но она не сработала.

мой файл * .pro

    TEMPLATE = app
CONFIG += console
CONFIG -= app_bundle
CONFIG -= qtLIBS += -L C:/Qt/Tools/SDL/SDL1/lib -lmingw32 -lSDLmain -lSDL -mwindows
INCLUDEPATH += C:/Qt/Tools/SDL/SDL1/include/

SOURCES += main.cpp

include(deployment.pri)
qtcAddDeployment()

мой main.cpp

#include <stdlib.h>
#include <stdio.h>
#include <SDL/SDL.h>

void pause();

int main(int argc, char *argv[])
{
SDL_Init(SDL_INIT_VIDEO); // Initialisation de la SDL

SDL_SetVideoMode(640, 480, 32, SDL_HWSURFACE); // Ouverture de la fenêtre

pause(); // Mise en pause du programme

SDL_Quit(); // Arrêt de la SDL

return EXIT_SUCCESS; // Fermeture du programme
}

void pause()
{
int continuer = 1;
SDL_Event event;

while (continuer)
{
SDL_WaitEvent(&event);
switch(event.type)
{
case SDL_QUIT:
continuer = 0;
}
}
}

У меня есть эта ошибка

 C:\Users\Phenix\Documents\c++ project\td7\test3\main.cpp:7: avertissement : unused parameter 'argc' [-Wunused-parameter]  int main(int argc, char *argv[])
C:\Users\Phenix\Documents\c++ project\td7\test3\main.cpp:7: avertissement : unused parameter 'argv' [-Wunused-parameter]    int main(int argc, char *argv[])
crt0_c.c:-1: erreur : undefined reference to `WinMain@16'
collect2.exe:-1: erreur : error: ld returned 1 exit status

И это мой каталог SDL1 в конце каталога есть больше файлов, но я думаю, что они не важны

Test
Share
Man
Lib
Include
Docs
Build-scripts
bin

Большое спасибо за помощь

2

Решение

У qtcreator есть 2 варианта: первое консольное приложение, второе — интерфейс и оконное приложение, использующее qt. Так могу ли я использовать окно, созданное с помощью SDL

Вы также должны выбрать консольное приложение, так как выбираете второй вариант Оконное приложение, использующее Qt означает, что вам придется использовать каркас Qt для создания окна, а не SDL, что вы и собираетесь.

Выберите опцию консоли, и ошибка тоже должна исчезнуть; так как для последнего варианта использования Qt, вы должны предоставить qMain и не main это обычно для обычных программ на C ++.

Поскольку вы используете MinGW, вы можете передать -mwindows пометить компоновщик, чтобы избавиться от дополнительного окна консоли, которое будет отображаться при запуске приложения вместе с окном SDL.

0

Другие решения

Я нашел решение, это мой финал * .pro файл

    TEMPLATE = app
CONFIG += console  # supprime cette ligne si t'as pas envie de voir de console lors de l'execution du programme
CONFIG -= app_bundle
CONFIG -= qt

LIBS += -L C:/Qt/Tools/SDL/SDL1/lib -lSDL -lSDLmain
INCLUDEPATH += C:/Qt/Tools/SDL/SDL1/include/win32:QMAKE_LIBS_QT_ENGTRY -= -lqtmain
win32-g++:DEFINES -=QT_NEEDS_QMAIN

QMAKE_LFLAGS += -lmingw32 -lSDLmain -lSDL -mwindows
QMAKE_LINK +=-lmingw32 -lSDLmain -lSDL -mwindows
SOURCES += main.cpp

Я не добавил файл SDL.dll в SysWOW64. Вы должны добавить, если компиляция не показывает ошибки, но окно не открывается.

0

По вопросам рекламы [email protected]