clion 《cmake自定义静态库后,生成的exe无法运行》
背景
项目生成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)
本文来自博客园,作者:一个小笨蛋,转载请注明原文链接:https://www.cnblogs.com/paylove/p/18338143
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 分享4款.NET开源、免费、实用的商城系统
· 全程不用写代码,我用AI程序员写了一个飞机大战
· MongoDB 8.0这个新功能碉堡了,比商业数据库还牛
· 白话解读 Dapr 1.15:你的「微服务管家」又秀新绝活了
· 记一次.NET内存居高不下排查解决与启示
2023-08-02 Teamcenter RAC开发 GoToHelper
2023-08-02 关于Teamcenter RAC开发如何查看Soa调用情况,已经查看反编译源码