首页 > 其他分享 >clion 《cmake自定义静态库后,生成的exe无法运行》

clion 《cmake自定义静态库后,生成的exe无法运行》

时间:2024-08-02 10:16:46浏览次数:13  
标签:set CMAKE LIB 自定义 CURRENT SOURCE BASE exe cmake

背景

项目生成lib引入,在生成exe过程中无法正常运行

处理办法

让链接器静态链接GCC和C++标准库
set(CMAKE_EXE_LINKER_FLAGS "-static-libgcc -static-libstdc++")

主CMakeLists.txt

cmake_minimum_required(VERSION 3.28)
project(speech)
# 编译版本
set(CMAKE_CXX_STANDARD 17)
# 让链接器静态链接GCC和C++标准库
set(CMAKE_EXE_LINKER_FLAGS "-static-libgcc -static-libstdc++")
# 设置可执行文件输出路径
set(EXECUTABLE_OUTPUT_PATH ${CMAKE_CURRENT_SOURCE_DIR}/bin)
# 自定义变量
set(M_LIB mlib)
set(BASE_INCLUDE ${CMAKE_CURRENT_SOURCE_DIR}/include)
set(BASE_SRC ${CMAKE_CURRENT_SOURCE_DIR}/src)
set(BASE_LIB ${CMAKE_CURRENT_SOURCE_DIR}/lib)
# 增加子模块
add_subdirectory(m_lib)
# 头文件包含目录
include_directories(${BASE_INCLUDE})
# 源文件包含目录
aux_source_directory(${BASE_SRC} SRC_LIST)
# 链接静态库
link_directories(${BASE_LIB})
link_libraries(${M_LIB})
# 输出配置
add_executable(speech main.cpp)

子CMakeLists.txt

cmake_minimum_required(VERSION 3.20)
project(${M_LIB})
set(CMAKE_WINDOWS_EXPORT_ALL_SYMBOLS ON)
include_directories(${BASE_INCLUDE})
set(LIBRARY_OUTPUT_PATH ${BASE_LIB})
add_library(${M_LIB} STATIC my_lib.cpp)

标签:set,CMAKE,LIB,自定义,CURRENT,SOURCE,BASE,exe,cmake
From: https://www.cnblogs.com/paylove/p/18338143

相关文章

  • 【C#】WPF自定义Image实现图像缩放、平移
    1.xaml实现<UserControlx:Class="HalconDemo.ImageUserControl"xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"xmlns:d="http://sche......
  • TpmVscMgr.exe 命令行工具让具有管理凭据的用户能够在计算机上创建和删除 TPM 虚拟智
     tpmvscmgr|MicrosoftLearn tpmvscmgr命令行工具让具有管理凭据的用户能够在计算机上创建和删除TPM虚拟智能卡。 tpmvscmgrTpmVscMgr.exe 命令:    create        [/quiet]        /name<名称>       ......
  • 自定义Django后台admin
    Django后台自定义一、AdminSite1、AdminSite属性AdminSite属性属性描述site_header管理页面顶部的文字,默认是‘Django管理’site_title<title>末尾放置的文字site_url‘查看网站’链接的urlindex_title管理索引页顶部的文字index_template自定义主要......
  • 【python脚本打包成exe】
    python项目打包成exe安装包分为三部分:1.python项目打包成可执行文件,依赖于一个python插件包pyinstaller        通过pipinstallpyinstaller安装即可。2.将python项目打包成可执行的exe文件及其依赖包        2.1在项目根目录下,输出python项目的配置文件(x......
  • CMAKE 《多模块例子》
    概述生成sort\calc的静态库,并生成app1.exeapp2.exe目录结构CMakeLists.txt位置以及配置根CMakeLists.txtcmake_minimum_required(VERSION3.15)project(mulitiple_modules)set(CMAKE_CXX_STANDARD17)#definevariables#LIBPATH库存储位置set(LIBPATH${PROJECT......
  • windows修改运行文件exe的“属性”-“详细信息”时,使用rcedit修改
    使用场景当编译好的运行文件没有配置版权、版本等信息的时候,可以使用rcedit软件修改。(注意:rcedit无法修改运行文件的“语言”类别。)流程需要在rcedit官网下载运行文件rcedit-x64.exe。打开终端,需要在终端运行此软件。此文件自带帮助文档,输入rcedit-x64.exe-h即可查看。使......
  • Flutter 自定义画笔案例
    首先让我们来看下这张图当UI做的设计图中有这么一个元素,我想大多数人第一反应就是叫UI切图,然后直接使用Image加载,我一开始也是这么做的,毕竟省时省力省心。但是由于后面需要针对不同的状态设置不同的颜色,我不想写过多判断语句来切换图标(我目前的做法是实现一个枚举类,然后拓展该......
  • 分享LVGL v9移植到imx6ull的过程(CMake)
    最近在做一个用cmake构建的项目需要用到LVGL,但是找资料的时候发现很少有分享v9的移植,自己移植也踩了很多坑所以决定分享一下移植过程。1.LVGL获取gitclonehttps://github.com/lvgl/lv_port_linux.gitgit之后发现这个包的lvgl文件夹里面是空的gitclonehttps://github.......
  • CMAKE 《window构建项目》
    安装参考链接https://subingwen.cn/https://subingwen.cn/cmake/CMake-primer/cmakehttps://cmake.org/download/下载根据需求安装合适的版本mingw64https://www.mingw-w64.org/下载根据需求安装合适的版本https://sourceforge.net/projects/mingw-w64/files/mi......
  • el-progress 自定义线状进度条右边的文字
    需要展示类似下面的效果 搜了很多slot的方式试了都不行,好像是因为我后面的文字太长了导致了换行,加上这边需要加其他的样式,最后干脆将原始的文字变成空的,自己写右边的文字加样式了<divstyle="margin:10px020px0"v-f......