使用docker环境编译
-
使用
alpine
镜像,alpine
系统包含各个系统架构的镜像,alpine
使用的是musl
,运行时是libc
-
使用
muslcc
musl中有各个平台的编译环境
-
如果要使用
gnu glibc
,建议使用ubuntu
编译,ubuntu
也支持各个架构
Docker环境参考:gcc docker 编译环境
cmake gcc静态链接运行时
cmake_minimum_required(VERSION 3.0)
project(myproject)
add_executable(myexe main.cpp)
target_include_directories(myexe PRIVATE include)
target_compile_features(myexe PUBLIC cxx_std_11)
target_link_libraries(myexe PRIVATE -static-libgcc -static-libstdc++ -static)
在这个示例中,-static-libgcc
和-static-libstdc++
选项用于将GCC和C++运行时库静态链接,-static
选项用于指定静态链接方式。这样,在编译可执行文件时,就会将运行时库静态链接到可执行文件中,从而避免在目标环境中需要安装运行时库的问题。
target_link_libraries(${PROJECT_NAME} PUBLIC -static-libgcc -static-libstdc++ -static)