静态编译增加stdc++和gcc静态库,运行不再依赖外部库

This commit is contained in:
JackLee_CN 2024-10-13 15:37:38 +08:00
parent d08a065442
commit e1850ad366
2 changed files with 26 additions and 23 deletions

View File

@ -4,7 +4,8 @@ cmake_minimum_required(VERSION 3.16)
set(VCPKG_ROOT "F:/SourceCode/vcpkg")
set(CMAKE_TOOLCHAIN_FILE "F:/SourceCode/vcpkg/scripts/buildsystems/vcpkg.cmake")
set(VCPKG_TARGET_TRIPLET "x64-mingw-static")
SET(CMAKE_C_COMPILER "x86_64-w64-mingw32-gcc.exe")
SET(CMAKE_CXX_COMPILER "x86_64-w64-mingw32-g++.exe")
#
project(XSteam VERSION 1.0.0 LANGUAGES CXX)
configure_file (version.h.in version.h @ONLY)
@ -44,10 +45,10 @@ endif()
SET(QT_DIR "D:/Dev/Qt/6.3.2/mingw1120_static_x64_base/lib/cmake")
SET(JSON ${PROJECT_SOURCE_DIR}/3rdparty/json)
LIST(APPEND CMAKE_PREFIX_PATH ${QT_DIR})
LIST(APPEND CMAKE_PREFIX_PATH ${QT_DIR} ${MSYS})
#QT
FIND_PACKAGE(Qt6 REQUIRED Core Gui Widgets Network)
FIND_PACKAGE(Qt6 REQUIRED Core Gui Widgets)
#
MESSAGE(STATUS "----------基础路径输出 START-------------")
@ -106,15 +107,13 @@ SET(PROJECT_SOURCES
${src}
)
# qFatalqDebug
SET(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -DQT_NO_DEBUG_OUTPUT")
LIST(APPEND CMAKE_CXX_FLAGS "-DQT_NO_DEBUG_OUTPUT")
#
QT6_ADD_RESOURCES(RCFILES res.qrc)
#WIN32
add_executable(${PROJECT_NAME} WIN32 ${PROJECT_SOURCES} ${RCFILES} xsteam.rc)
#winpthreadgcc_s
SET(CMAKE_CXX_FLAGS ${CMAKE_CXX_FLAGS} "-Wl,-Bstatic -lwinpthread -Wl,-Bstatic -lz -Wl,-Bstatic -lgcc_s")
#
#RPATH
SET(CMAKE_SKIP_RPATH TRUE)
@ -147,9 +146,13 @@ SET(CMAKE_CXX_FLAGS_DEBUG "${CMAKE_CXX_FLAGS} -ftrapv")
#
SET(CMAKE_CXX_FLAGS_DEBUG "${CMAKE_CXX_FLAGS} -fstack-check")
#winpthreadgcc_s
SET(CMAKE_CXX_FLAGS "-static-libstdc++ -static-libgcc")
#
target_link_options(${PROJECT_NAME} PUBLIC -Wl,--allow-multiple-definition)
target_link_libraries(
${PROJECT_NAME} PRIVATE Qt6::Core Qt6::Gui Qt6::Widgets Qt6::Network PkgConfig::LIBGIT2 PkgConfig::CURL
${PROJECT_NAME} PRIVATE Qt6::Core Qt6::Gui Qt6::Widgets PkgConfig::LIBGIT2 PkgConfig::CURL
)

View File

@ -1,16 +1,16 @@
{
"version": 2,
"configurePresets": [
{
"name": "vcpkg-mingw-x64",
"generator": "Ninja",
"binaryDir": "${sourceDir}/build",
"cacheVariables": {
"CMAKE_MAKE_PROGRAM":"ninja.exe",
"CMAKE_C_COMPILER":"x86_64-w64-mingw32-gcc.exe",
"CMAKE_CXX_COMPILER":"x86_64-w64-mingw32-g++.exe",
"CMAKE_TOOLCHAIN_FILE": "$env{VCPKG_ROOT}/scripts/buildsystems/vcpkg.cmake"
}
}
]
}
{
"version": 2,
"configurePresets": [
{
"name": "vcpkg-mingw-x64",
"generator": "Ninja",
"binaryDir": "${sourceDir}/build",
"cacheVariables": {
"CMAKE_MAKE_PROGRAM": "ninja.exe",
"CMAKE_C_COMPILER": "x86_64-w64-mingw32-gcc.exe",
"CMAKE_CXX_COMPILER": "x86_64-w64-mingw32-g++.exe",
"CMAKE_TOOLCHAIN_FILE": "$env{VCPKG_ROOT}/scripts/buildsystems/vcpkg.cmake"
}
}
]
}