【问题标题】:SDL2 No Console Output on WindowsSDL2 在 Windows 上没有控制台输出
【发布时间】:2017-09-29 06:11:16
【问题描述】:

我已经尝试了所有我能想到的。我只是无法让 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)

【问题讨论】:

  • 在 add_executable(testproject src/main.cpp) 之后添加了这个:set_target_properties(testproject PROPERTIES WIN32_EXECUTABLE FALSE) 仍然没有输出。
  • 即使来自 cout?
  • 您使用的是哪个SUBSYSTEMCONSOLE? WINDOWS?
  • 不确定你的意思。

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


【解决方案1】:

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

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2011-06-03
    • 2016-09-23
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-08-31
    • 2013-08-21
    相关资源
    最近更新 更多