Qt CreatorでSDL2を使用する方法を教えていますが、状況。現在、私は(チュートリアルをやって)その上に緑の絵でウィンドウを開くしようとしているが、私はこのエラーを取得:SDL2プロジェクトを実行できません "実行できません" "%1有効なWin32アプリケーションではありません"
Cannot execute "": %1 not a valid Win32-application
私はコンパイラとしてmingwの5.3.0 32bit2を使用していると私は」このエラーがなくても他のプロジェクトを実行することができました。私はBuild and Runの設定を試してみましたが、運がなかった。現在、私の(基本的な)実行コンフィギュレーションは次のようになります。私はちょうど上の緑の四角でウィンドウを開くために、
#include <iostream>
#include <stdio.h>
#include <SDL2/SDL.h>
#include <SDL2/SDL_image.h>
using namespace std;
int main()
{
bool quit = false;
SDL_Init(SDL_INIT_VIDEO);
SDL_Window* window = nullptr;
window = SDL_CreateWindow("MVP", 100, 100, 600, 400,
SDL_WINDOW_SHOWN);
if(window == nullptr){
cout << "Window could not be created." << endl;
return 0;
}
SDL_Renderer* renderer = nullptr;
renderer = SDL_CreateRenderer(window, -1,
SDL_RENDERER_ACCELERATED);
SDL_Event* mainEvent = new SDL_Event();
SDL_Texture* grass_image = NULL;
grass_image = IMG_LoadTexture(renderer, "grass.bmp");
SDL_Rect grass_rect;
grass_rect.x = 10;
grass_rect.y = 50;
grass_rect.w = 250;
grass_rect.h = 250;
while(!quit && mainEvent->type != SDL_QUIT){
SDL_PollEvent(mainEvent);
SDL_RenderClear(renderer);
SDL_RenderCopy(renderer, grass_image, NULL, &grass_rect);
SDL_RenderPresent(renderer);
}
SDL_DestroyWindow(window);
SDL_DestroyRenderer(renderer);
delete mainEvent;
return 0;
}
絶望的な感じ:
Executable C:\...\sdl_test\debug\sdl_test.exe
Working directory: C:\...\sdl_test
はまた参考のために、ここでmain.cppにはですそれは...あまりにも多くの質問ですか?
EDIT:ここ はあなたが私たちに見せているコードはLinuxとまともなシステムのために働く私の.PROファイル
TEMPLATE = app
CONFIG += console c++11
CONFIG -= app_bundle
CONFIG -= qt
SOURCES += main.cpp
win32: LIBS += -L$$PWD/../../../../SDL2-2.0.5/i686-w64-mingw32/lib/ -lmingw32 -lSDL2main -lSDL2
INCLUDEPATH += $$PWD/../../../../SDL2-2.0.5/i686-w64-mingw32/include
DEPENDPATH += $$PWD/../../../../SDL2-2.0.5/i686-w64-mingw32/include
win32: LIBS += -L$$PWD/../../../../SDL2_image-2.0.1/i686-w64-mingw32/lib/ -lmingw32 -lSDL2_image
INCLUDEPATH += $$PWD/../../../../SDL2_image-2.0.1/i686-w64-mingw32/include
DEPENDPATH += $$PWD/../../../../SDL2_image-2.0.1/i686-w64-mingw32/include
win32:QMAKE_LFLAGS += -shared
あなたは 'Cをダブルクリックした場合はどうなります:エクスプローラで\ ... \ sdl_test \デバッグ\のsdl_test.exe'? 'cmd'から' C:\ ... \ sdl_test \ debug \ sdl_test.exe'を実行するとどうなりますか? – Paul
sdl_test.exeをダブルクリックした場合:「このアプリケーションではこのオペレーティングシステムはサポートされていません」 cmdから実行しようとすると同じことです。私は64ビットOSを実行しています。 – Borjee
ちょっとクレイジーなアイデア - 使用しているコンパイラがWindows用のバイナリを生成していることを確認してください。たぶんそれはLinuxのクロスコンパイラです。あなたが 'MinGW'に' file'ユーティリティーを持っていれば、 'file sdl_test.exe'を実行して、それが何を印刷するか見てみることができますか? – Paul