静态编译增加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(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}
|
||||
)
|
||||
# 设置消息策略为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)
|
||||
#WIN32
|
||||
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特性
|
||||
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")
|
||||
|
||||
#增加winpthread和gcc_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
|
||||
)
|
||||
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user