SDL2 Windows上没有控制台输出

时间:2017-09-29 06:11:16

标签: c++ windows cmake stdout sdl-2

我已经尝试过我能想到的一切。我只是无法让SDL2向控制台输出任何内容。 Windows PowerShell和命令提示符都不显示输出。还没有stdout.txt文件。 cout,cerr,SDL_Log(" ......"),无效。

#define NO_STDIO_REDIRECT
#include <iostream>
#include "SDL.h"

using namespace std;

int main(int argc, char** args){
    if (SDL_Init(SDL_INIT_VIDEO) != 0){
        std::cout << "SDL_Init Error: " << SDL_GetError() << std::endl;
        return 1;
    }

    SDL_Log("Hello World");


    SDL_Quit();
    return 0;
}

的CMakeLists.txt:

message(STATUS "Print Test, CMAKE_SOURCE_DIR: " ${CMAKE_SOURCE_DIR})
cmake_minimum_required(VERSION 3.7)
project(testproject)

set(CMAKE_MODULE_PATH ${CMAKE_MODULE_PATH} "${CMAKE_SOURCE_DIR}/cmake/")
#set(CMAKE_MODULE_PATH cmake/FindSDL2.cmake)
#set(CMAKE_MODULE_PATH ${PROJECT_SOURCE_DIR}/cmake)

find_package(SDL2 REQUIRED)
include_directories(testproject ${SDL2_INCLUDE_DIRS})

add_executable(testproject src/main.cpp)
target_link_libraries(testproject ${SDL2_LIBRARIES})

使用GCC 4.8.3(MinGW i686 Win-Builds 1.5)

1 个答案:

答案 0 :(得分:2)

不确定它是否仍然与您相关,但是您是否尝试过No stdout.txt with SDL中的答案?

我使用了MSYS2 / MinGW-w64中的SDL 2,其中pkg-config设置了-mwindows标志,这导致从命令提示符运行时丢弃stdout / stderr(但不适用于MSYS2本身)。省略-mwindows标志会有所帮助。