mingw: Disable stack printing when using MINGW compiler.

This commit is contained in:
2025-06-20 16:20:34 +08:00
parent 6941e1b893
commit 6aea5f6614
8 changed files with 42 additions and 6 deletions

View File

@@ -10,6 +10,12 @@ if (MSVC)
add_compile_options(/utf-8)
endif()
if(CMAKE_CXX_COMPILER_ID MATCHES "GNU" AND CMAKE_SYSTEM_NAME MATCHES "Windows")
message(STATUS "frelay use MINGW compiler.")
set(COMPILER_USE_MINGW ON)
add_definitions(-DCOMPILER_USE_MINGW)
endif()
if(WIN32)
execute_process(COMMAND cmd /c ver
OUTPUT_VARIABLE VER_OUTPUT

View File

@@ -13,5 +13,10 @@ find_package(QT NAMES Qt6 Qt5 REQUIRED COMPONENTS Core Network)
find_package(Qt${QT_VERSION_MAJOR} REQUIRED COMPONENTS Core Network)
add_executable(frelayConsole Console.h Console.cpp main.cpp ../Res/ico.rc)
target_link_libraries(frelayConsole PRIVATE Protocol Util crashelper)
target_link_libraries(frelayConsole PRIVATE Protocol Util)
if(NOT DEFINED COMPILER_USE_MINGW)
target_link_libraries(frelayConsole PRIVATE crashelper)
endif()
target_link_libraries(frelayConsole PRIVATE Qt${QT_VERSION_MAJOR}::Core Qt${QT_VERSION_MAJOR}::Network)

View File

@@ -1,11 +1,16 @@
#include <QCoreApplication>
#include <Util.h>
#include <crashelper.h>
#include "Console.h"
#ifndef COMPILER_USE_MINGW
#include <crashelper.h>
#endif
int main(int argc, char* argv[])
{
#ifndef COMPILER_USE_MINGW
auto configDir = Util::GetCurConfigPath("frelay");
#ifdef _WIN32
backward::SetDumpFileSavePath(configDir + "/dumpfile");
@@ -13,6 +18,8 @@ int main(int argc, char* argv[])
#else
backward::SetDumpLogSavePath(configDir + QDir::separator() + "dumplog");
#endif
#endif
QCoreApplication app(argc, argv);
Util::InitLogger("frelayConsole.log", "frelayConsole");

View File

@@ -56,8 +56,12 @@ target_link_libraries(frelayGUI PRIVATE
ClientCore Protocol
Util
Struct
crashelper
)
if(NOT DEFINED COMPILER_USE_MINGW)
target_link_libraries(frelayGUI PRIVATE crashelper)
endif()
if (CMAKE_CXX_COMPILER_ID MATCHES "GNU" AND CMAKE_SYSTEM_NAME MATCHES "Windows")
target_link_libraries(frelayGUI PRIVATE ws2_32 wsock32)
endif()

View File

@@ -4,18 +4,21 @@
#include "frelayGUI.h"
#ifndef ZZXXCC
#ifndef COMPILER_USE_MINGW
#include <crashelper.h>
#endif
int main(int argc, char* argv[])
{
#ifndef COMPILER_USE_MINGW
auto configDir = Util::GetCurConfigPath("frelay");
#ifdef _WIN32
backward::SetDumpFileSavePath(configDir + "/dumpfile");
backward::SetDumpLogSavePath(configDir + "/dumplog");
#else
backward::SetDumpLogSavePath(configDir + QDir::separator() + "dumplog");
#endif
#endif
CRASHELPER_MARK_ENTRY();

View File

@@ -13,5 +13,10 @@ find_package(QT NAMES Qt6 Qt5 REQUIRED COMPONENTS Core Network)
find_package(Qt${QT_VERSION_MAJOR} REQUIRED COMPONENTS Core Network)
add_executable(frelayServer Server.h Server.cpp main.cpp ../Res/server.rc)
target_link_libraries(frelayServer PRIVATE Protocol Util crashelper)
target_link_libraries(frelayServer PRIVATE Protocol Util)
if(NOT DEFINED COMPILER_USE_MINGW)
target_link_libraries(frelayServer PRIVATE crashelper)
endif()
target_link_libraries(frelayServer PRIVATE Qt${QT_VERSION_MAJOR}::Core Qt${QT_VERSION_MAJOR}::Network)

View File

@@ -7,7 +7,6 @@
#include <QTcpServer>
#include <QTcpSocket>
#include <QTimer>
#include <crashelper.h>
#include "Protocol.h"

View File

@@ -3,14 +3,21 @@
#include "Server.h"
#ifndef COMPILER_USE_MINGW
#include <crashelper.h>
#endif
int main(int argc, char* argv[])
{
#ifndef COMPILER_USE_MINGW
auto configDir = Util::GetCurConfigPath("frelay");
#ifdef _WIN32
backward::SetDumpFileSavePath(configDir + "/dumpfile");
backward::SetDumpLogSavePath(configDir + "/dumplog");
#else
backward::SetDumpLogSavePath(configDir + QDir::separator() + "dumplog");
#endif
#endif
QCoreApplication app(argc, argv);