Скомпилированное исполнение MSYS2/UCRT64 не выводит в STDOUT/STDERR в PowerShell/CMDC++

Программы на C++. Форум разработчиков
Ответить Пред. темаСлед. тема
Anonymous
 Скомпилированное исполнение MSYS2/UCRT64 не выводит в STDOUT/STDERR в PowerShell/CMD

Сообщение Anonymous »

Я пытаюсь скомпилировать и запустить простой исполняемый файл C ++, который использует библиотеку QT, под кодом Visual Studio.

Код: Выделить всё

#include 
#include 

#include 

int main(int argc, char* argv[])
{
QString cwd = QDir::currentPath();
std::string cwdStd = cwd.toStdString();

std::cout .\Dummy.exe

< /code>
Если я дважды щелкните исполняемый файл, я не получаю никаких выводов. (Без ошибок, либо) 
Я считал, что это может быть проблема DLL, я запустил ntldd 
как из MSYS2, так и от оболочки Windows и получил следующее:
/c/source/dummy/build >ntldd /c/source/dummy/build/Dummy.exe
libgcc_s_seh-1.dll (0x0000013a5e920000)
KERNEL32.dll => C:\WINDOWS\SYSTEM32\KERNEL32.dll (0x0000013a5ebc0000)
libstdc++-6.dll (0x0000013a5ebc0000)
Qt6Core.dll (0x0000013a5f9c0000)

< /code>
Ожидается. В случае, если у Windows была некоторая проблема с поиском DLL MSYS2, я копировал эти 3 (LIBGCC, LIBSTDC ++, QT6CORE) рядом с исполняемым файлом, но это не имело разницы.cmake_minimum_required(VERSION 3.16...3.29)

set(EXECUTABLE_NAME Dummy)

project(${EXECUTABLE_NAME} LANGUAGES CXX)

set(CMAKE_AUTOUIC ON)
set(CMAKE_AUTOMOC ON)
set(CMAKE_AUTORCC ON)

set(CMAKE_CXX_STANDARD 17)
set(CMAKE_CXX_STANDARD_REQUIRED ON)

find_package(Qt6Core REQUIRED)

set(SOURCES
main.cpp
)

add_executable(${EXECUTABLE_NAME} WIN32
${SOURCES}
)

target_compile_features(${EXECUTABLE_NAME} PUBLIC cxx_std_17)
target_compile_options(${EXECUTABLE_NAME} PRIVATE -fPIC)
target_compile_definitions(${EXECUTABLE_NAME} PRIVATE -DQT_DEPRECATED_WARNINGS)

target_link_libraries(${EXECUTABLE_NAME} PUBLIC Qt6::Core)

install(TARGETS ${EXECUTABLE_NAME} DESTINATION ${BINARY_INSTALL_DIR})
< /code>
На случай, если это актуально, вот мой запуск.json: < /p>
{
// Use IntelliSense to learn about possible attributes.
// Hover to view descriptions of existing attributes.
// For more information, visit: https://go.microsoft.com/fwlink/?linkid=830387
"version": "0.2.0",
"configurations": [
{
"name": "(gdb) Launch",
"type": "cppdbg",
"request": "launch",
"program": "C:\\source\\dummy\\build\\Dummy.exe",
"args": [],
"stopAtEntry": false,
"cwd": "${workspaceFolder}",
"environment": [],
"externalConsole": false,
"MIMode": "gdb",
"miDebuggerPath": "C:\\msys64\\ucrt64\\bin\\gdb.exe",
"setupCommands": [
{
"description": "Enable pretty-printing for gdb",
"text": "-enable-pretty-printing",
"ignoreFailures": true
},
{
"description": "Set Disassembly Flavor to Intel",
"text": "-gdb-set disassembly-flavor intel",
"ignoreFailures": true
}
]
}

]
}
< /code>
Что мне не хватает? Я просмотрел эту аналогичную проблему, но, к сожалению, я уже позаботился о пути. Cmake был настроен на «Unix Makefiles» в качестве генератора, так как нам повезло с этим в MSYS2.

Подробнее здесь: https://stackoverflow.com/questions/797 ... powershell
Реклама
Ответить Пред. темаСлед. тема

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение

Вернуться в «C++»