Я использовал 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
Большое спасибо за помощь
У qtcreator есть 2 варианта: первое консольное приложение, второе — интерфейс и оконное приложение, использующее qt. Так могу ли я использовать окно, созданное с помощью SDL
Вы также должны выбрать консольное приложение, так как выбираете второй вариант Оконное приложение, использующее Qt означает, что вам придется использовать каркас Qt для создания окна, а не SDL, что вы и собираетесь.
Выберите опцию консоли, и ошибка тоже должна исчезнуть; так как для последнего варианта использования Qt, вы должны предоставить qMain
и не main
это обычно для обычных программ на C ++.
Поскольку вы используете MinGW, вы можете передать -mwindows
пометить компоновщик, чтобы избавиться от дополнительного окна консоли, которое будет отображаться при запуске приложения вместе с окном SDL.
Я нашел решение, это мой финал * .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. Вы должны добавить, если компиляция не показывает ошибки, но окно не открывается.