我已经尝试过我能想到的一切。我只是无法让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)
答案 0 :(得分:2)
不确定它是否仍然与您相关,但是您是否尝试过No stdout.txt with SDL中的答案?
我使用了MSYS2 / MinGW-w64中的SDL 2,其中pkg-config
设置了-mwindows
标志,这导致从命令提示符运行时丢弃stdout
/ stderr
(但不适用于MSYS2本身)。省略-mwindows
标志会有所帮助。