静态编译增加stdc++和gcc静态库,运行不再依赖外部库
This commit is contained in:
parent
d08a065442
commit
e1850ad366
@ -4,7 +4,8 @@ cmake_minimum_required(VERSION 3.16)
|
|||||||
set(VCPKG_ROOT "F:/SourceCode/vcpkg")
|
set(VCPKG_ROOT "F:/SourceCode/vcpkg")
|
||||||
set(CMAKE_TOOLCHAIN_FILE "F:/SourceCode/vcpkg/scripts/buildsystems/vcpkg.cmake")
|
set(CMAKE_TOOLCHAIN_FILE "F:/SourceCode/vcpkg/scripts/buildsystems/vcpkg.cmake")
|
||||||
set(VCPKG_TARGET_TRIPLET "x64-mingw-static")
|
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)
|
project(XSteam VERSION 1.0.0 LANGUAGES CXX)
|
||||||
configure_file (version.h.in version.h @ONLY)
|
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(QT_DIR "D:/Dev/Qt/6.3.2/mingw1120_static_x64_base/lib/cmake")
|
||||||
SET(JSON ${PROJECT_SOURCE_DIR}/3rdparty/json)
|
SET(JSON ${PROJECT_SOURCE_DIR}/3rdparty/json)
|
||||||
|
|
||||||
LIST(APPEND CMAKE_PREFIX_PATH ${QT_DIR})
|
LIST(APPEND CMAKE_PREFIX_PATH ${QT_DIR} ${MSYS})
|
||||||
|
|
||||||
#查找QT模块
|
#查找QT模块
|
||||||
FIND_PACKAGE(Qt6 REQUIRED Core Gui Widgets Network)
|
FIND_PACKAGE(Qt6 REQUIRED Core Gui Widgets)
|
||||||
|
|
||||||
#输出路径
|
#输出路径
|
||||||
MESSAGE(STATUS "----------基础路径输出 START-------------")
|
MESSAGE(STATUS "----------基础路径输出 START-------------")
|
||||||
@ -106,15 +107,13 @@ SET(PROJECT_SOURCES
|
|||||||
${src}
|
${src}
|
||||||
)
|
)
|
||||||
# 设置消息策略为qFatal来禁用qDebug信息
|
# 设置消息策略为qFatal来禁用qDebug信息
|
||||||
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)
|
QT6_ADD_RESOURCES(RCFILES res.qrc)
|
||||||
#WIN32
|
#WIN32
|
||||||
add_executable(${PROJECT_NAME} WIN32 ${PROJECT_SOURCES} ${RCFILES} xsteam.rc)
|
add_executable(${PROJECT_NAME} WIN32 ${PROJECT_SOURCES} ${RCFILES} xsteam.rc)
|
||||||
|
|
||||||
#增加winpthread和gcc_s静态库
|
|
||||||
SET(CMAKE_CXX_FLAGS ${CMAKE_CXX_FLAGS} "-Wl,-Bstatic -lwinpthread -Wl,-Bstatic -lz -Wl,-Bstatic -lgcc_s")
|
|
||||||
#安全编译
|
#安全编译
|
||||||
#关闭RPATH特性
|
#关闭RPATH特性
|
||||||
SET(CMAKE_SKIP_RPATH TRUE)
|
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")
|
SET(CMAKE_CXX_FLAGS_DEBUG "${CMAKE_CXX_FLAGS} -fstack-check")
|
||||||
|
|
||||||
|
#增加winpthread和gcc_s静态库
|
||||||
|
SET(CMAKE_CXX_FLAGS "-static-libstdc++ -static-libgcc")
|
||||||
#忽略多重定引用
|
#忽略多重定引用
|
||||||
target_link_options(${PROJECT_NAME} PUBLIC -Wl,--allow-multiple-definition)
|
target_link_options(${PROJECT_NAME} PUBLIC -Wl,--allow-multiple-definition)
|
||||||
|
|
||||||
target_link_libraries(
|
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
|
||||||
)
|
)
|
||||||
|
|
||||||
|
|
||||||
|
@ -1,16 +1,16 @@
|
|||||||
{
|
{
|
||||||
"version": 2,
|
"version": 2,
|
||||||
"configurePresets": [
|
"configurePresets": [
|
||||||
{
|
{
|
||||||
"name": "vcpkg-mingw-x64",
|
"name": "vcpkg-mingw-x64",
|
||||||
"generator": "Ninja",
|
"generator": "Ninja",
|
||||||
"binaryDir": "${sourceDir}/build",
|
"binaryDir": "${sourceDir}/build",
|
||||||
"cacheVariables": {
|
"cacheVariables": {
|
||||||
"CMAKE_MAKE_PROGRAM":"ninja.exe",
|
"CMAKE_MAKE_PROGRAM": "ninja.exe",
|
||||||
"CMAKE_C_COMPILER":"x86_64-w64-mingw32-gcc.exe",
|
"CMAKE_C_COMPILER": "x86_64-w64-mingw32-gcc.exe",
|
||||||
"CMAKE_CXX_COMPILER":"x86_64-w64-mingw32-g++.exe",
|
"CMAKE_CXX_COMPILER": "x86_64-w64-mingw32-g++.exe",
|
||||||
"CMAKE_TOOLCHAIN_FILE": "$env{VCPKG_ROOT}/scripts/buildsystems/vcpkg.cmake"
|
"CMAKE_TOOLCHAIN_FILE": "$env{VCPKG_ROOT}/scripts/buildsystems/vcpkg.cmake"
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
]
|
]
|
||||||
}
|
}
|
Loading…
Reference in New Issue
Block a user