Linux中编译通过静态依赖编译执行文件出现运行时崩溃的问题解决方法的记录

为了解决c++程序在linux环境的依赖问题,采用静态依赖编译。在运行过程中发生线程接口调用崩溃,排查代码发现问题原因为在静态编译期间由于有的接口没有在初始化时调用会导致没有被编译进执行文件中,为了解决这个问题需要在编译期间增加"-Wl,--whole-archive","-Wl,--no-whole-archive"保证静态库被全量编译到执行文件中

    if(CMAKE_CXX_COMPILER_ID MATCHES "GNU")

        target_link_libraries(${PROJECT_NAME} PRIVATE

        "-Wl,--whole-archive"

        pthread

        "-Wl,--no-whole-archive"

        )

    endif()

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值