SDL with Qtcrator
SDL with Qtcrator
我已经将qtcreator用于控制台应用程序。现在我想将它与 SDL1 一起使用,因为我有一个关于 SDL1 的教程,我想在 qtcreator 上学习 SDL,但似乎 qtcreator 有 2 个选项,首先是 consol 应用程序,其次是使用 qt 的界面和窗口应用程序。因此,我可以使用 SDL 生成的窗口吗?我做了同样的研究,我已经将 SDL 库添加到 qmake 中,但它不起作用
我的文件 *.pro
TEMPLATE = app
CONFIG += console
CONFIG -= app_bundle
CONFIG -= qt
LIBS += -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()
我的主.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:UsersPhenixDocumentsc++ projecttd7test3main.cpp:7: avertissement : unused parameter 'argc' [-Wunused-parameter] int main(int argc, char *argv[])
C:UsersPhenixDocumentsc++ projecttd7test3main.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 个选项,第一个 Consol 应用程序,其次是使用 Qt 的界面和窗口应用程序。那么我可以使用 SDL 生成的窗口吗
您现在也应该选择控制台应用程序,因为使用 Qt 选择窗口应用程序的第二个选项意味着您必须使用 Qt 框架来创建窗口,而不是您想要的 SDL。
选择控制台选项,错误也应该消失;因为对于使用Qt的后一个选项,你应该提供qMain
而不是普通C++程序通常提供的main
。
由于您使用的是 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 中。 如果编译显示没有错误但窗口未打开,则必须添加。
相关文章:
- Problems with std::cin.fail()
- 应用程序崩溃并显示"symbol _ZdlPvm, version Qt_5 not defined in file libQt5Core.so.5 with link time reference"
- 这对"With a stackless coroutine, only the top-level routine may be suspended."意味着什么
- Boost.TEST with CLion: "Test framework quit unexpectedly"
- 避免碎片化的ClientHellos with OpenSSL (DTLS)
- Issues with Win32 ReadProcessMemory API
- Qt with WinAPI MouseProc
- [[maybe_unused]] with structured_binding?
- Issue with WriteProcessMemory
- OpenCV RTP-Stream with FFMPEG
- "Unable to start debugging. No process is associated with this object." - 在Visual Studio Code中使用GDB
- std::adjacent_difference with std::chrono time_point
- DLL Made with CMake 使程序崩溃
- QtCreator with C 库中的链接器问题
- SHBrowseForFolder with BIF_BROWSEFORCOMPUTER and SHGetPathFr
- specialized std::default_delete with QQmlComponent
- VS2019 - Sudo Remote Debugging on Linux with Cmake project
- Inference pytorch C++ with alexnet and cv::imread image
- Pybind11: init<> with lambda
- SDL with Qtcrator