Skip to content

Commit 45b0282

Browse files
committed
测试windows上静态编译
1 parent 108273a commit 45b0282

File tree

2 files changed

+22
-2
lines changed

2 files changed

+22
-2
lines changed

.github/workflows/build.yml

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -28,11 +28,11 @@ jobs:
2828
sudo apt-get install -y gcc-11 g++-11
2929
echo "CC=gcc-11" >> $GITHUB_ENV
3030
echo "CXX=g++-11" >> $GITHUB_ENV
31-
- name: Build
31+
- name: Build-Release
3232
run: |
3333
mkdir build
3434
cd build
35-
cmake ..
35+
cmake .. -DCMAKE_USER_MAKE_RULES_OVERRIDE=../cmake/flags_override.cmake
3636
cmake --build . --config Release
3737
ctest -V -C Release
3838
cmake --install . --config Release --prefix ${{ github.workspace }}/artifact/

cmake/flags_override.cmake

Lines changed: 20 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,20 @@
1+
# see https://cloud.tencent.com/developer/article/1011688
2+
if(MSVC)
3+
# Use the static C library for all build types
4+
MESSAGE(STATUS "link to static C and C++ runtime lirbary(/MT /MTd)")
5+
foreach(var
6+
CMAKE_C_FLAGS_DEBUG_INIT
7+
CMAKE_C_FLAGS_RELEASE_INIT
8+
CMAKE_C_FLAGS_MINSIZEREL_INIT
9+
CMAKE_C_FLAGS_RELWITHDEBINFO_INIT
10+
CMAKE_CXX_FLAGS_DEBUG_INIT
11+
CMAKE_CXX_FLAGS_RELEASE_INIT
12+
CMAKE_CXX_FLAGS_MINSIZEREL_INIT
13+
CMAKE_CXX_FLAGS_RELWITHDEBINFO_INIT
14+
)
15+
if(${var} MATCHES "/MD")
16+
string(REGEX REPLACE "/MD" "/MT" ${var} "${${var}}")
17+
MESSAGE(STATUS "${var}:${${var}}")
18+
endif()
19+
endforeach()
20+
endif(MSVC)

0 commit comments

Comments
 (0)